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
Copy file name to clipboardExpand all lines: src/content/learn/javascript-in-jsx-with-curly-braces.md
+50-50Lines changed: 50 additions & 50 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -43,7 +43,7 @@ export default function Avatar() {
43
43
44
44
Aquí, `"https://i.imgur.com/7vQD0fPs.jpg"` y `"Gregorio Y. Zara"` están siendo pasados como strings.
45
45
46
-
Pero, ¿qué sucede si quieres especificar dinámicamente el texto `src` o `alt`? Puedes **usar un valor de JavaScript reemplazando `"` y `"` con `{` y `}`**:
46
+
Pero, ¿qué sucede si quieres especificar dinámicamente el texto `src` o `alt`? Puedes **usar un valor de JavaScript reemplazando las comillas de apertura `"` y de cierre `"` con las llaves de apertura `{` y de cierre`}`**:
47
47
48
48
<Sandpack>
49
49
@@ -71,15 +71,15 @@ Observa la diferencia entre `className="avatar"`, que especifica un nombre de cl
71
71
72
72
## Usando llaves: Una ventana al mundo de JavaScript {/*using-curly-braces-a-window-into-the-javascript-world*/}
73
73
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>`:
74
+
JSX es una forma especial de escribir JavaScript. Eso significa que es posible utilizar JavaScript dentro de él, con llaves `{ }`. El ejemplo siguiente declara primero un nombre para el científico, `name`, y luego lo incrusta con llaves dentro de `<h1>`:
75
75
76
76
<Sandpack>
77
77
78
78
```js
79
79
exportdefaultfunctionTodoList() {
80
80
constname='Gregorio Y. Zara';
81
81
return (
82
-
<h1>{name}'s To Do List</h1>
82
+
<h1>Lista de tareas pendientes de {name}</h1>
83
83
);
84
84
}
85
85
```
@@ -97,14 +97,14 @@ const today = new Date();
97
97
98
98
functionformatDate(date) {
99
99
returnnewIntl.DateTimeFormat(
100
-
'en-US',
100
+
'es-ES',
101
101
{ weekday:'long' }
102
102
).format(date);
103
103
}
104
104
105
105
exportdefaultfunctionTodoList() {
106
106
return (
107
-
<h1>To Do List for {formatDate(today)}</h1>
107
+
<h1>Lista de tareas pendientes del {formatDate(today)}</h1>
108
108
);
109
109
}
110
110
```
@@ -115,14 +115,14 @@ export default function TodoList() {
115
115
116
116
Solo puedes usar llaves de dos maneras dentro de JSX:
117
117
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}`.
118
+
1.**Como texto** directamente dentro de una etiqueta JSX: `<h1>Lista de tareas pendientes de {name}</h1>`funcionará, pero `<{tag}>Lista de tareas pendientes de Gregorio Y. Zara</{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
121
## Usando "llaves dobles": CSS y otros objetos en JSX {/*using-double-curlies-css-and-other-objects-in-jsx*/}
122
122
123
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
-
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`:
125
+
Puedes ver esto con estilos en línea CSS, en JSX. React no requiere que uses estilos en línea (las clases CSS funcionan muy bien para la mayoría de los casos). Pero cuando necesitas un estilo en línea, pasas un objeto al atributo `style`:
126
126
127
127
<Sandpack>
128
128
@@ -133,9 +133,9 @@ export default function TodoList() {
133
133
backgroundColor:'black',
134
134
color:'pink'
135
135
}}>
136
-
<li>Improve the videophone</li>
137
-
<li>Prepare aeronautics lectures</li>
138
-
<li>Work on the alcohol-fuelled engine</li>
136
+
<li>Mejorar el videoteléfono</li>
137
+
<li>Preparar clases de aeronáutica</li>
138
+
<li>Trabajar en el motor de alcohol</li>
139
139
</ul>
140
140
);
141
141
}
@@ -161,7 +161,7 @@ Realmente puedes ver el objeto JavaScript dentro de las llaves cuando lo escribe
161
161
}>
162
162
```
163
163
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!
164
+
La próxima vez que veas `{{` y `}}` en JSX, ¡sabe que no es más que un objeto dentro de las llaves JSX!
165
165
166
166
<Pitfall>
167
167
@@ -187,16 +187,16 @@ const person = {
187
187
exportdefaultfunctionTodoList() {
188
188
return (
189
189
<div style={person.theme}>
190
-
<h1>{person.name}'s Todos</h1>
190
+
<h1>Tareas pendientes de {person.name}</h1>
191
191
<img
192
192
className="avatar"
193
193
src="https://i.imgur.com/7vQD0fPs.jpg"
194
194
alt="Gregorio Y. Zara"
195
195
/>
196
196
<ul>
197
-
<li>Improve the videophone</li>
198
-
<li>Prepare aeronautics lectures</li>
199
-
<li>Work on the alcohol-fuelled engine</li>
197
+
<li>Mejorar el videoteléfono</li>
198
+
<li>Preparar clases de aeronáutica</li>
199
+
<li>Trabajar en el motor de alcohol</li>
200
200
</ul>
201
201
</div>
202
202
);
@@ -223,11 +223,11 @@ const person = {
223
223
};
224
224
```
225
225
226
-
El componente puede usar estos valores de `persona` así:
226
+
El componente puede usar estos valores de `person` así:
227
227
228
228
```js
229
229
<div style={person.theme}>
230
-
<h1>{person.name}'s Todos</h1>
230
+
<h1>Tareas pendientes de {person.name}</h1>
231
231
```
232
232
233
233
JSX es muy mínimo como lenguaje de plantillas porque te permite organizar datos y lógica usando JavaScript.
@@ -263,16 +263,16 @@ const person = {
263
263
exportdefaultfunctionTodoList() {
264
264
return (
265
265
<div style={person.theme}>
266
-
<h1>{person}'s Todos</h1>
266
+
<h1>Tareas pendientes de {person}</h1>
267
267
<img
268
268
className="avatar"
269
269
src="https://i.imgur.com/7vQD0fPs.jpg"
270
270
alt="Gregorio Y. Zara"
271
271
/>
272
272
<ul>
273
-
<li>Improve the videophone</li>
274
-
<li>Prepare aeronautics lectures</li>
275
-
<li>Work on the alcohol-fuelled engine</li>
273
+
<li>Mejorar el videoteléfono</li>
274
+
<li>Preparar clases de aeronáutica</li>
275
+
<li>Trabajar en el motor de alcohol</li>
276
276
</ul>
277
277
</div>
278
278
);
@@ -293,9 +293,9 @@ body > div > div { padding: 20px; }
293
293
294
294
<Solution>
295
295
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.
296
+
Esto sucede porque este ejemplo renderiza *un objeto en sí mismo* en el marcado en lugar de un string: `<h1>Tareas pendientes de {person}</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
-
Para arreglarlo, reemplaza `<h1>{person}'s Todos</h1>` con `<h1>{person.name}'s Todos</h1>`:
298
+
Para arreglarlo, reemplaza `<h1>Tareas pendientes de {person}</h1>` con `<h1>Tareas pendientes de {person.name}</h1>`:
299
299
300
300
<Sandpack>
301
301
@@ -311,16 +311,16 @@ const person = {
311
311
exportdefaultfunctionTodoList() {
312
312
return (
313
313
<div style={person.theme}>
314
-
<h1>{person.name}'s Todos</h1>
314
+
<h1>Tareas pendientes de {person.name}</h1>
315
315
<img
316
316
className="avatar"
317
317
src="https://i.imgur.com/7vQD0fPs.jpg"
318
318
alt="Gregorio Y. Zara"
319
319
/>
320
320
<ul>
321
-
<li>Improve the videophone</li>
322
-
<li>Prepare aeronautics lectures</li>
323
-
<li>Work on the alcohol-fuelled engine</li>
321
+
<li>Mejorar el videoteléfono</li>
322
+
<li>Preparar clases de aeronáutica</li>
323
+
<li>Trabajar en el motor de alcohol</li>
324
324
</ul>
325
325
</div>
326
326
);
@@ -355,16 +355,16 @@ const person = {
355
355
exportdefaultfunctionTodoList() {
356
356
return (
357
357
<div style={person.theme}>
358
-
<h1>{person.name}'s Todos</h1>
358
+
<h1>Tareas pendientes de {person.name}</h1>
359
359
<img
360
360
className="avatar"
361
361
src="https://i.imgur.com/7vQD0fPs.jpg"
362
362
alt="Gregorio Y. Zara"
363
363
/>
364
364
<ul>
365
-
<li>Improve the videophone</li>
366
-
<li>Prepare aeronautics lectures</li>
367
-
<li>Work on the alcohol-fuelled engine</li>
365
+
<li>Mejorar el videoteléfono</li>
366
+
<li>Preparar clases de aeronáutica</li>
367
+
<li>Trabajar en el motor de alcohol</li>
368
368
</ul>
369
369
</div>
370
370
);
@@ -398,16 +398,16 @@ const person = {
398
398
exportdefaultfunctionTodoList() {
399
399
return (
400
400
<div style={person.theme}>
401
-
<h1>{person.name}'s Todos</h1>
401
+
<h1>Tareas pendientes de {person.name}</h1>
402
402
<img
403
403
className="avatar"
404
404
src={person.imageUrl}
405
405
alt="Gregorio Y. Zara"
406
406
/>
407
407
<ul>
408
-
<li>Improve the videophone</li>
409
-
<li>Prepare aeronautics lectures</li>
410
-
<li>Work on the alcohol-fuelled engine</li>
408
+
<li>Mejorar el videoteléfono</li>
409
+
<li>Preparar clases de aeronáutica</li>
410
+
<li>Trabajar en el motor de alcohol</li>
411
411
</ul>
412
412
</div>
413
413
);
@@ -426,9 +426,9 @@ body > div > div { padding: 20px; }
426
426
427
427
#### Escribe una expresión dentro de llaves JSX {/*write-an-expression-inside-jsx-curly-braces*/}
428
428
429
-
En el objeto a continuación, la URL de la imagen completa está dividida en 4 partes: URL base, `imageId`, `imageSize` y la extensión del archivo.
429
+
En el objeto a continuación, la URL de la imagen completa está dividida en 4 partes: `baseURL`, `imageId`, `imageSize` y la extensión del archivo.
430
430
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`.
431
+
Queremos que la URL de la imagen combine esos atributos juntos: `baseURL` (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`.
0 commit comments