You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
translate Javascript in jsx with curly braces (#523)
* translate Javascript in jsx with curly braces
* typo
* remove extra space
* extra space
Co-authored-by: Rainer Martínez Fraga <rmartinezfraga@yandex.com>
Copy file name to clipboardExpand all lines: beta/src/pages/learn/javascript-in-jsx-with-curly-braces.md
+56-56
Original file line number
Diff line number
Diff line change
@@ -4,22 +4,22 @@ title: JavaScript in JSX with Curly Braces
4
4
5
5
<Intro>
6
6
7
-
JSX lets you write HTML-like markup inside a JavaScript file, keeping rendering logic and content in the same place. Sometimes you will want to add a little JavaScript logic or reference a dynamic property inside that markup. In this situation, you can use curly braces in your JSX to open a window to JavaScript.
7
+
JSX te permite escribir marcas similares a HTML dentro de un archivo JavaScript, manteniendo la lógica de renderizado y el contenido en el mismo lugar. A veces vas a querer agregar un poco de lógica JavaScript o hacer referencia a una propiedad dinámica dentro de ese marcado. En esta situación, puedes usar llaves en tu JSX para abrir una ventana a JavaScript.
8
8
9
9
</Intro>
10
10
11
11
<YouWillLearn>
12
12
13
-
*How to pass strings with quotes
14
-
*How to reference a JavaScript variable inside JSX with curly braces
15
-
*How to call a JavaScript function inside JSX with curly braces
16
-
*How to use a JavaScript object inside JSX with curly braces
13
+
*Cómo pasar strings con comillas
14
+
*Cómo hacer referencia a una variable de JavaScript dentro de JSX con llaves
15
+
*Cómo llamar una funcion de JavaScript dentro de JSX con llaves
16
+
*Cómo usar un objeto de JavaScript dentro de JSX con llaves
17
17
18
18
</YouWillLearn>
19
19
20
-
## Passing strings with quotes {/*passing-strings-with-quotes*/}
20
+
## Pasando strings con comillas {/*passing-strings-with-quotes*/}
21
21
22
-
When you want to pass a string attribute to JSX, you put it in single or double quotes:
22
+
Cuando desees pasar un atributo string a JSX, lo pones entre comillas simples o dobles:
23
23
24
24
<Sandpack>
25
25
@@ -41,9 +41,9 @@ export default function Avatar() {
41
41
42
42
</Sandpack>
43
43
44
-
Here, `"https://i.imgur.com/7vQD0fPs.jpg"`and`"Gregorio Y. Zara"`are being passed as strings.
44
+
Aquí, `"https://i.imgur.com/7vQD0fPs.jpg"`y`"Gregorio Y. Zara"`están siendo pasados como strings.
45
45
46
-
But what if you want to dynamically specify the`src`or`alt` text? You could **use a value from JavaScript by replacing `"`and`"`with`{`and`}`**:
46
+
Pero, ¿qué sucede si quieres especificar dinámicamente el texto`src`o`alt`? Puedes **usar un valor de JavaScript reemplazando `"`y`"`con`{`y`}`**:
47
47
48
48
<Sandpack>
49
49
@@ -67,11 +67,11 @@ export default function Avatar() {
67
67
68
68
</Sandpack>
69
69
70
-
Notice the difference between`className="avatar"`, which specifies an `"avatar"`CSS class name that makes the image round, and`src={avatar}`that reads the value of the JavaScript variable called `avatar`. That's because curly braces let you work with JavaScript right there in your markup!
70
+
Observa la diferencia entre`className="avatar"`, que especifica un nombre de clase CSS `"avatar"`que hace que la imagen sea redonda, y`src={avatar}`que lee el valor de una variable JavaScript llamada `avatar`. ¡Eso es porque las llaves te permiten trabajar con JavaScript allí mismo en tu marcado!.
71
71
72
-
## Using curly braces: A window into the JavaScript world {/*using-curly-braces-a-window-into-the-javascript-world*/}
72
+
## Usando llaves: Una ventana al mundo de JavaScript {/*using-curly-braces-a-window-into-the-javascript-world*/}
73
73
74
-
JSX is a special way of writing JavaScript. That means it’s possible to use JavaScript inside it—with curly braces`{ }`. The example below first declares a name for the scientist, `name`, then embeds it with curly braces inside the `<h1>`:
74
+
JSX es una forma especial de escribir JavaScript. Esto significa que es posible usar JavaScript dentro el, con llaves`{ }`. El siguiente ejemplo declara primero declara un nombre para el científico, `name`, luego lo incrusta con llaves dentro de `<h1>`:
75
75
76
76
<Sandpack>
77
77
@@ -86,9 +86,9 @@ export default function TodoList() {
86
86
87
87
</Sandpack>
88
88
89
-
Try changing `name`'s value from `'Gregorio Y. Zara'`to`'Hedy Lamarr'`. See how the To Do List title changes?
89
+
Intenta cambiar el valor de `name` de `'Gregorio Y. Zara'` a `'Hedy Lamarr'`. ¿Ves cómo cambia el título de la lista de tareas pendientes?
90
90
91
-
Any JavaScript expression will work between curly braces, including function calls like `formatDate()`:
91
+
Cualquier expresión JavaScript funcionará entre llaves, incluidas las llamadas a funciones como `formatDate()`:
92
92
93
93
<Sandpack>
94
94
@@ -111,18 +111,18 @@ export default function TodoList() {
111
111
112
112
</Sandpack>
113
113
114
-
### Where to use curly braces {/*where-to-use-curly-braces*/}
You can only use curly braces in two ways inside JSX:
116
+
Solo puedes usar llaves de dos maneras dentro de JSX:
117
117
118
-
1. **As text** directly inside a JSX tag: `<h1>{name}'s To Do List</h1>` works, but `<{tag}>Gregorio Y. Zara's To Do List</{tag}>` will not.
119
-
2. **As attributes** immediately following the `=` sign: `src={avatar}`will read the`avatar` variable, but`src="{avatar}"`will pass the string `{avatar}`.
118
+
1. **Como texto** directamente dentro de una etiqueta JSX: `<h1>{name}'s To Do List</h1>`funciona, pero`<{tag}>Gregorio Y. Zara's To Do List</{tag}>` no lo hará.
119
+
2. **Como atributos** inmediatamente después del signo `=`: `src={avatar}` leerá la variable `avatar`, pero `src="{avatar}"` pasará el string `{avatar}`.
120
120
121
-
## Using "double curlies": CSS and other objects in JSX {/*using-double-curlies-css-and-other-objects-in-jsx*/}
121
+
## Usando "llaves dobles": CSS y otros objetos en JSX {/*using-double-curlies-css-and-other-objects-in-jsx*/}
122
122
123
-
In addition to strings, numbers, and other JavaScript expressions, you can even pass objects in JSX. Objects are also denoted with curly braces, like`{ name:"Hedy Lamarr", inventions:5 }`. Therefore, to pass a JS object in JSX, you must wrap the object in another pair of curly braces: `person={{ name:"Hedy Lamarr", inventions:5 }}`.
123
+
Además de strings, números, y otras expresiones de JavaScript, incluso puedes pasar objetos en JSX. Los objetos también se indican con llaves, como `{ name: "Hedy Lamarr", inventions: 5 }`. Por lo tanto, para pasar un objeto de JavaScript en JSX, debes envolver el objeto en otro par de llaves: `person={{ name: "Hedy Lamarr", inventions: 5 }}`.
124
124
125
-
You may see this with inline CSS styles in JSX. React does not require you to use inline styles (CSS classes work great for most cases). But when you need an inline style, you pass an object to the `style` attribute:
125
+
Puedes ver esto con estilos CSS en línea en JSX. React no requiere que uses estilos en línea (las clases CSS funcionan muy bien en la mayoría de los casos). Pero cuando necesites un estilo en línea, pasa un objeto al atributo `style`:
126
126
127
127
<Sandpack>
128
128
@@ -148,9 +148,9 @@ ul { padding: 20px 20px 20px 40px; margin: 0; }
148
148
149
149
</Sandpack>
150
150
151
-
Try changing the values of`backgroundColor`and`color`.
151
+
Intenta cambiar los valores de `backgroundColor` y `color`.
152
152
153
-
You can really see the JavaScript object inside the curly braces when you write it like this:
153
+
Realmente puedes ver el objeto JavaScript dentro de las llaves cuando lo escribes así:
154
154
155
155
```js {2-5}
156
156
<ul style={
@@ -161,17 +161,17 @@ You can really see the JavaScript object inside the curly braces when you write
161
161
}>
162
162
```
163
163
164
-
The next time you see`{{`and`}}`in JSX, know that it's nothing more than an object inside the JSX curlies!
164
+
La próxima vez que veas `{{` y `}}` en JSX, ¡sepa que no es más que un objeto dentro de las llaves de JSX!
165
165
166
166
<Gotcha>
167
167
168
-
Inline `style`properties are written in camelCase. For example, HTML `<ul style="background-color: black">`would be written as `<ul style={{ backgroundColor:'black' }}>` in your component.
168
+
Las propiedades de `style` en línea se escriben en camelCase. Por ejemplo, HTML `<ul style="background-color: black">` se escribiría como `<ul style={{ backgroundColor: 'black' }}>` en tu componente.
169
169
170
170
</Gotcha>
171
171
172
-
## More fun with JavaScript objects and curly braces {/*more-fun-with-javascript-objects-and-curly-braces*/}
172
+
## Más diversión con objetos de JavaScript y llaves {/*more-fun-with-javascript-objects-and-curly-braces*/}
173
173
174
-
You can move several expressions into one object, and reference them in your JSX inside curly braces:
174
+
Puedes mover varias expresiones a un objeto, y hacer referencia a ellas en tu JSX dentro de llaves:
175
175
176
176
<Sandpack>
177
177
@@ -211,7 +211,7 @@ body > div > div { padding: 20px; }
211
211
212
212
</Sandpack>
213
213
214
-
In this example, the `person` JavaScript object contains a `name` string and a `theme` object:
214
+
En este ejemplo, el objeto JavaScript `person`contiene un string `name`y un objeto`theme`:
215
215
216
216
```js
217
217
constperson= {
@@ -223,31 +223,31 @@ const person = {
223
223
};
224
224
```
225
225
226
-
The component can use these values from `person` like so:
226
+
El componente puede usar estos valores de `persona` así:
227
227
228
228
```js
229
229
<div style={person.theme}>
230
230
<h1>{person.name}'s Todos</h1>
231
231
```
232
232
233
-
JSX is very minimal as a templating language because it lets you organize data and logic using JavaScript.
233
+
JSX es muy mínimo como lenguaje de plantillas porque te permite organizar datos y lógica usando JavaScript.
234
234
235
235
<Recap>
236
236
237
-
Now you know almost everything about JSX:
237
+
Ahora ya sabes casi todo sobre JSX:
238
238
239
-
* JSX attributes inside quotes are passed as strings.
240
-
* Curly braces let you bring JavaScript logic and variables into your markup.
241
-
* They work inside the JSX tag content or immediately after `=`in attributes.
242
-
* `{{`and`}}`is not special syntax: it's a JavaScript object tucked inside JSX curly braces.
239
+
* Los atributos de JSX dentro de comillas son pasados como strings.
240
+
* Las llaves te permiten meter lógica y variables de JavaScript en tu mercado.
241
+
* Funcionan dentro del contenido de la etiqueta JSX o inmediatamente después de `=` en los atributos.
242
+
* `{{` y `}}` no es una sintaxis especial: es un objeto JavaScript metido dentro de llaves JSX.
243
243
244
244
</Recap>
245
245
246
246
<Challenges>
247
247
248
-
### Fix the mistake {/*fix-the-mistake*/}
248
+
### Arreglar el error {/*fix-the-mistake*/}
249
249
250
-
This code crashes with an error saying`Objects are not valid as a React child`:
250
+
Este código se bloquea con un error que dice `Objects are not valid as a React child`:
251
251
252
252
<Sandpack>
253
253
@@ -287,15 +287,15 @@ body > div > div { padding: 20px; }
287
287
288
288
</Sandpack>
289
289
290
-
Can you find the problem?
290
+
¿Puedes encontrar el problema?
291
291
292
-
<Hint>Look for what's inside the curly braces. Are we putting the right thing there?</Hint>
292
+
<Hint>Busca lo que hay dentro de las llaves. ¿Estamos poniendo lo correcto ahí?</Hint>
293
293
294
294
<Solution>
295
295
296
-
This is happening because this example renders *an object itself* into the markup rather than a string:`<h1>{person}'s Todos</h1>` is trying to render the entire`person` object! Including raw objects as text content throws an error because React doesn't know how you want to display them.
296
+
Esto sucede porque este ejemplo renderiza *un objeto en sí mismo* en el marcado en lugar de un string: `<h1>{person}'s Todos</h1>`¡está tratando de renderizar todo el objeto`person`! Incluir objetos sin procesar como contenido de texto arroja un error porque React no sabe cómo quieres mostrarlos.
297
297
298
-
To fix it, replace `<h1>{person}'s Todos</h1>`with`<h1>{person.name}'s Todos</h1>`:
298
+
Para arreglarlo, reemplaza`<h1>{person}'s Todos</h1>`con`<h1>{person.name}'s Todos</h1>`:
299
299
300
300
<Sandpack>
301
301
@@ -337,9 +337,9 @@ body > div > div { padding: 20px; }
337
337
338
338
</Solution>
339
339
340
-
### Extract information into an object {/*extract-information-into-an-object*/}
340
+
### Extraer información en un objeto {/*extract-information-into-an-object*/}
341
341
342
-
Extract the image URL into the `person` object.
342
+
Extrae la URL de la imagen en el objeto `person`.
343
343
344
344
<Sandpack>
345
345
@@ -381,7 +381,7 @@ body > div > div { padding: 20px; }
381
381
382
382
<Solution>
383
383
384
-
Move the image URL into a property called `person.imageUrl` and read it from the `<img>` tag using the curlies:
384
+
Mueve la URL de la imagen a una propiedad llamada `person.imageUrl`y léela desde la etiqueta`<img>`usando las llaves:
385
385
386
386
<Sandpack>
387
387
@@ -424,13 +424,13 @@ body > div > div { padding: 20px; }
424
424
425
425
</Solution>
426
426
427
-
### Write an expression inside JSX curly braces {/*write-an-expression-inside-jsx-curly-braces*/}
427
+
### Escribe una expresión dentro de llaves JSX {/*write-an-expression-inside-jsx-curly-braces*/}
428
428
429
-
In the object below, the full image URL is split into four parts: base URL, `imageId`, `imageSize`, and file extension.
429
+
En el objeto a continuación, la URL de la imagen completa está dividida en 4 partes: base URL, `imageId`, `imageSize` y la extensión del archivo.
430
430
431
-
We want the image URL to combine these attributes together: base URL (always`'https://i.imgur.com/'`), `imageId` (`'7vQD0fP'`), `imageSize` (`'s'`), and file extension (always`'.jpg'`). However, something is wrong with how the `<img>`tag specifies its`src`.
431
+
Queremos que la URL de la imagen combine esos atributos juntos: base URL (siempre `'https://i.imgur.com/'`), `imageId` (`'7vQD0fP'`), `imageSize` (`'s'`), y la extensión del archivo (siempre `'.jpg'`). Sin embargo, algo está mal con la forma en que la etiqueta `<img>` especifica su `src`.
432
432
433
-
Can you fix it?
433
+
¿Puedes arreglarlo?
434
434
435
435
<Sandpack>
436
436
@@ -474,15 +474,15 @@ body > div > div { padding: 20px; }
474
474
475
475
</Sandpack>
476
476
477
-
To check that your fix worked, try changing the value of `imageSize` to `'b'`. The image should resize after your edit.
477
+
Para verificar que tu solución funcionó, intenta cambiar el valor de`imageSize`a`'b'`. La imagen debería cambiar de tamaño después de tu edición.
478
478
479
479
<Solution>
480
480
481
-
You can write it as `src={baseUrl + person.imageId + person.imageSize + '.jpg'}`.
0 commit comments