JSX
JSX (JavaScript XML) es la sintaxis que se utiliza para construir el markup de los componentes de React. Veamos un ejemplo tomado del código que genera create-react-app:
JSX es similar a HTML pero con algunas diferencias importantes:
Se utiliza
className
en vez declass
para definir las clases de un elemento.Todas las etiquetas deben estar cerradas con
/>
o una etiqueta de cierre.
JSX se transforma en JavaScript
Por debajo JSX se transforma en código JavaScript. Por ejemplo, el siguiente código JSX
se transforma en el siguiente código JavaScript:
Puedes utilizar el REPL de Babel para ver en qué se convierte el código JSX que escribes.
La ventaja de JSX es que, como es JavaScript, podemos:
Ver algunos errores en tiempo de compilación.
Asignar JSX a variables. Por ejemplo:
Retornar JSX desde métodos. Por ejemplo:
Una restricción de JSX es que siempre debes tener un elemento raíz:
Para no perder la indentación en el último ejemplo podemos utilizar paréntesis para escribir el JSX en una nueva línea:
Este es un patrón muy común en las aplicaciones de React.
Mezclando código JavaScript
Para mezclar código JavaScript en JSX utiliza corchetes ({}
):
Una restricción de JSX es que no puedes utilizar if
, else
, while
o for
.
Para agregar condicionales utiliza el operador ternario:
Para mostrar elementos de un arreglo o un objeto utiliza map
:
Estilos inline
Es posible definir y utilizar estilos inline en JSX:
Eventos del DOM
En JSX se utilizan los eventos estándar del DOM como onclick
, onchange
, onkeydown
, etc. pero utilizando camelCase: onClick
, onChange
, onKeyDown
, etc. Por ejemplo:
Fíjate que utilizamos corchetes ({}
) para escribir nuestro código JavaScript. También podríamos pasar una función que es invocada cuando se genere el evento:
Fíjate que no estamos invocando la función saluda
, sólo la estamos pasando para que React la invoque cuando ocurra el evento.
Last updated