Volver a la página principal
lunes 16 septiembre 2024
19

¿Qué es JSX en React?

JSX (JavaScript XML) es una extensión de sintaxis para JavaScript que se utiliza en React para escribir elementos de la interfaz de usuario de una manera que se asemeja al HTML. Es una combinación de JavaScript y HTML-like syntax que hace más intuitivo el desarrollo de componentes en React.

Aunque parece HTML, en realidad JSX se compila a llamadas de JavaScript a la función React.createElement(), lo que permite crear interfaces de usuario de forma declarativa. Esto facilita el trabajo con la estructura de componentes y hace que el código sea más legible y mantenible.

¿Cómo funciona JSX?

JSX permite escribir código como este dentro de los componentes de React:

const element = <h1>Hola, Mundo</h1>;

Internamente, este código JSX se transforma en algo como esto:

const element = React.createElement('h1', null, 'Hola, Mundo');

JSX puede incluir variables, expresiones JavaScript y condicionales, lo que hace que sea muy poderoso y flexible. Por ejemplo, puedes incrustar expresiones JavaScript dentro de JSX utilizando llaves {}:

const name = 'Juan';
const element = <h1>Hola, {name}</h1>;

El uso de JSX mejora la experiencia del desarrollador, ya que no es necesario separar la lógica de la representación visual, lo que facilita la creación y el mantenimiento de la interfaz de usuario.

Ventajas de usar JSX en React

1. Sintaxis declarativa: JSX permite definir de forma clara qué interfaz de usuario se debe renderizar basándose en el estado actual del componente.

2. Mejora la legibilidad: Combinar JavaScript con una sintaxis parecida a HTML hace que el código sea más fácil de leer y entender, especialmente para desarrolladores familiarizados con HTML.

3. Integración con JavaScript: Permite utilizar toda la potencia de JavaScript dentro de las vistas, lo que lo hace flexible y dinámico.

4. Compilación eficiente: JSX se transpila a JavaScript puro, lo que garantiza un rendimiento óptimo en el navegador.

Ejemplo básico de JSX

function Saludo(props) {
  return <h1>Hola, {props.nombre}</h1>;
}

const elemento = <Saludo nombre="Carlos" />;

ReactDOM.render(
  elemento,
  document.getElementById('root')
);

En este ejemplo, el componente Saludo recibe una propiedad (props.nombre) y muestra un saludo personalizado utilizando JSX. Luego, este componente se renderiza en el DOM.

Reglas básicas de JSX

1. Un solo elemento contenedor: JSX debe devolver un único elemento contenedor. Si deseas retornar múltiples elementos, es necesario envolverlos en un contenedor como un <div> o un <> (fragmento vacío).

return (
     <>
       <h1>Título</h1>
       <p>Este es un párrafo.</p>
     </>
   );

2. Atributos en camelCase: A diferencia de HTML, los atributos de JSX siguen la convención de camelCase. Por ejemplo, class se convierte en className y onclick en onClick.

<button className="boton" onClick={handleClick}>Haz clic aquí</button>

3. Expresiones en llaves: Para usar expresiones JavaScript dentro de JSX, se deben envolver en llaves {}.

const elemento = <p>{2 + 2}</p>;

Diferencia entre JSX y HTML

Aunque JSX se parece mucho a HTML, hay algunas diferencias clave:

  • Atributos: En JSX se usan atributos de camelCase como className en lugar de class y htmlFor en lugar de for.
  • Auto-cierre de etiquetas: Todos los elementos en JSX que no tienen hijos deben autocerrarse, como las etiquetas <img />, <input />, <br />, etc.
  • JSX es más estricto: JSX sigue reglas más estrictas que HTML, como por ejemplo, no permitir atributos sin comillas o que las etiquetas estén mal cerradas.

Referencia

Para más información sobre JSX, puedes consultar la documentación oficial de React: React JSX Docs.

Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer