Guía para principiantes de React JSX: ¿Qué es React JSX? Introducción a React JSX

Inicioreact js¿Que es React JSX?
Guía para principiantes de React JSX: ¿Qué es React JSX? Introducción a React JSX

by Juan Carlos García

3-Mzo-2023

(8)

Suscribirme al canal:

Continuando con nuestro Tutorial Gratuito de React JS, hoy veremos uno de los temas introductorios más importantes, hoy aprenderás ¿Qué es React JSX? Y que beneficios te ofrece en el desarrollo de aplicaciones con React, espero que este curso gratuito te este siendo de gran ayuda y lo compartas con tus amigos.

Si has llegado sin ver el primer capítulo, aquí te lo dejo ¿Mi primera aplicación con React JS?

¡No te puedes perder las nuevas clases 🧐!

React JS

React JS

React.js: El mejor curso gratuito de React.js desde cero.

¿Que es React JSX?

¿Que es React JSX?

Guía para principiantes de React JSX: ¿Qué es React JSX? Introducción a React JSX

Componentes y propiedades

Componentes y propiedades

Components and Props React.js, Manejo de propiedades y componentes en React

State y Ciclo de vida en React

State y Ciclo de vida en React

State And Lifecycle: Comprendiendo el State y Ciclo de vida de los componentes en React.js

Refs React

Refs React

¿Qué son las React Refs y para que sirven? Uso de las Refs y manejo del DOM en React.js

Listas y condiciones en React

Listas y condiciones en React

Keys and List: ¿Cómo manejar las listas y condicionales en React JS?

Formularios en React

Formularios en React

Formularios en React: ¿Cómo manejar los formularios en React.js con input controlados y no controlados?

React develepor tools

React develepor tools

React Developer Tools: ¿Cómo analizar el comportamiento y estado de nuestros componentes en React.js?

API Context

API Context

API Context en React: ¿Cómo comunicar componentes mediante API Context en React.js?

Higher Order Component

Higher Order Component

HOC en React.js: ¿Cómo utilizar los High Order Component (HOC) ?

Children en React JS

Children en React JS

Children en React.js: Manejo avanzado de Children en React.js, composición de componentes.

PropTypes en React

PropTypes en React

PropType en React.js: ¿Cómo validar datos a través de PropType en React.js?

Hooks en React JS

Hooks en React JS

Master de Hooks en React JS: ¿Qué es un Hook en React.js? Tipos, funcionamiento y características.

Hook useState

Hook useState

useState: ¿Cómo utilizar el Hook useState en React.js?

Hook useEffect

Hook useEffect

Hook useEffect: ¿Qué es el Hook useEffect? ¿Cómo utilizarlo correctamente y qué reglas seguir?

Hook useContext

Hook useContext

¿Cómo utilizar el Hook useContext? Comunicación de componentes funcionales

Hook useReducer

Hook useReducer

¿Cómo utilizar el Hook useReducer en React.js?

React memo

React memo

Memorizar componentes a través de React.memo en React.js

Hook useCallback

Hook useCallback

Utilizando los Hooks useCallback y useMemo en React.js

🧐 Autoevaluación: ¿Que es React JSX?

¿Cómo funciona JSX?

¿Cómo funciona JSX?

¿Qué aprenderás?

  • ¿Qué es React JSX?
  • Aprenderás a utilizar React.createElement
  • Te enseñaré a Reemplazar React.createElement por sintaxis JSX
  • Hoy Comprenderás por que los componentes deben comenzar con una letra mayúscula.
  • Te dejo la introducción al manejo de propiedades
  • Cómo agregar expresiones de JavaScript dentro de la estructura JSX

Repositorio:

  • Este segundo capitulo lo puedes descargar clonando el repositorio con la siguiente línea de código.
  • Y solo debes cambiarte a la rama de nombre "introduccion-jsx"
  • Si no estas familiarizado con Git, descarga el código aquí.
  • Recuerda que cada capítulo estará en una rama diferente para llevar un orden

 

git clone https://github.com/EWebik/react-js.git

 

¿Qué es React JSX?

En definición JSX es considerado una extensión de Javascript, la cual nos permite unir o mas bien dicho mezclar código Javascript con HTML.

Usar JavaScript XML o bien JSX tiene el beneficio de proporcionarnos un código limpio, evitando repeticiones innecesarias y por supuesto hay que dar crédito a sus creadores quienes son el equipo de Facebook.

 

¿Cómo funciona JSX?

La extensión JSX nos permite escribir código muy parecido al HTML (pero que no es propiamente HTML) este código no lo reconoce ningún navegador de forma nativa.

Para que la sintaxis JSX sea reconocida e interpretada por los navegadores, requerimos transpilar dicho código para que pueda ser ejecutado e interpretado en los navegadores.

 

Transpilar código JSX

Para poder transpilar código JSX necesitamos una herramienta de nombre Babel JS, dicha herramienta es un Transpiler (tranpilador) de código.

 

Babel JS

Babel JS interpreta código en un lenguaje determinado y lo compila sin alterar su funcionalidad a otro lenguaje, esto tiene varias ventajas, lo más importantes es que nos permite:

  • Usar expresiones JSX y asignarlas a una variable.
  • Uso de expresiones JSX en argumentos de funciones.
  • También podemos usar JSX en ciclos, condiciones y funciones.

Si has utilizado el comando:

create-react-app

No te debes preocupar por la instalación ni configuración de Babel ya que esta herramienta CLI lo hace por ti ahorrándote un montón de trabajo y conocimientos previos que deberías adquirir para montar un ambiente de React desde cero.

Al principio yo montaba React desde cero y créeme que al usar este comando te ahorras bastante.

 

Comportamiento de React JSX

Espero que hayas visto el capitulo anterior a esta clase donde te explico ¿Qué es React? No obstante, en resumen, dado que esta librería se basa en componentes, necesitamos una manera que nos permita definir, elementos como div, imágenes o párrafos.

Para ello vamos a utilizar la sintaxis que proporciona JSX en ves de utilizar React.createElement, si no tienes claro esto, te lo explico a continuación.

 

React.createElement y JSX

React.createElement nos permite definir un elemento en react y cuenta con la siguiente sintaxis.

React.createElement(
  type,
  props,
  ...children
);

Donde:

  • Type, es tipo string que nos permite definir un:
    • Tag de HTML ('div', 'p', 'span', etc.)
    • O un tipo de Componente de React ya sea una clase o función.
  • Props, es un arreglo de propiedades del elemento que estas definiendo, por ejemplo, si es una imagen aquí pones el valor de src y alt.
  • Children, es opcional dependiendo del elemento, pero aquí debes agregar los elementos que serán hijos del elemento que estas creando.

Ejemplo de React.createElement

//Elemento tipo parrafo
var p = React.createElement('p', {
  className: 'style-parrafo'
},"Curso de React JS by EWebik");

//Contendor
var container = React.createElement('div', {
  className: 'container'
}, p);

 

El código anterior tendría una salida HTML de la siguiente manera:

<div class="container">
     <p class="style-parrafo">Curso de React JS by EWebik</p>
</div>

 

Excelente no, pero ahora imagina ¿Cuántos párrafos o elementos tiene una página web?

El estar usando React.createElement sería muy complicado, para ello utilizamos JSX y definimos una estructura HTML dentro de JavaScript, solo debemos tener cuidado con algunos aspectos que veremos más adelante.

 

Sintaxis JSX, reemplazando a React.createElement

En el ejemplo anterior definimos un div y un párrafo, ahora si aplicáramos la sintaxis JSX quedaría de la siguiente manera.

//Elemento creado con JSX
var div = (
      <div className="container">
              <p className="style-parrafo">Curso de React JS by EWebik</p>
      </div>
);

//Nodo donde montaremos nuestro elemento creado con JSX
ReactDOM.render(div,document.getElementById('idRoot'));

Como puedes observar la sintaxis JSX es muy parecida a la salida de HTML que vimos anteriormente, pero class es reemplazado por className.

Esto se debe a que class es una palabra reservada de JavaScript y por lo tanto debemos cambiarla en JSX, también encontraremos otras palabras que estaré subiendo y actualizando constantemente, si es que no ya las he subido.

 

Los componentes personalizados deben ser capitalizados

Existen dos tipos de elementos:

  • Aquellos que inician con una letra minúscula, estos elementos dan como resultado por lo regular etiquetas HTML, como párrafos (p), imágenes (img), etc.
  • Ahora, los tipos que inician con una letra mayúsculas, son elementos por lo regular creados en una sintaxis JSX, por lo tanto, si tienes un elemento con una letra minúscula, debes asignarlo a una letra mayúscula antes de renderearlo en la DOM.

Por ejemplo:

import React from 'react';

//Elemento personalizado con la primera letra en mayúscula es decir Capitalizado
function HolaEwebik(props){
             return <p>{props.texto}</p>;
}

//Agregando elemento personalizado dentro de otro
function Contenedor(){
             return <HolaEwebik texto="Curso React JS EWebik" />;
}

 

Props en JSX

En el ejemplo anterior introduje una palabra props, a esto se le conoce como propiedades, esto quiere decir que podemos pasar valores de un elemento a otro, a través del uso de las props en JSX.

Esto es bastante sencillo de hacer y lo haremos casi igual a como se hace en HTML, por ejemplo, en el código anterior creamos la propiedad texto y se le pasamos al elemento "HolaEwebik":

//Agregando elemento personalizado dentro de otro
function Contenedor(){
             return <HolaEwebik texto="Curso React JS EWebik" />;
}

Y para recuperar el valor de la propiedad lo veremos a continuación.

 

¿Cómo agregar expresiones de JavaScript en JSX?

Podemos pasar cualquier expresión de JavaScript dentro de la sintaxis JSX, a través de llaves

{}

Tal y como vimos en nuestro ejemplo anterior:

//Elemento personalizado con la primera letra en mayúscula es decir Capitalizado
function HolaEwebik(props){
             return <p>{props.texto}</p>;
}

Donde pasamos la propiedad texto con el valor "Curso React JS EWebik" Y entre llaves invocamos la propiedad para obtener el valor.

 

Pero también podríamos pasar, funciones, variables, y operaciones, por ejemplo:

<MiComponente propiedad={()=>{ return 1 + 1; }} />

 

Operadores Spread

Utilizando la sintaxis Spread podemos heredar propiedades entre componentes o pasar en una sola linea toda una serie de propiedades que podremos recuperar en otros elementos.

function Elemento1 (props){
       return (
            <div>
               <p>{"Titulo: " + props.titulo}</p>
               <p>{"Capitulo: " + props.capitulo}</p>
            </div>
       );
}

function Elemento(){
       const props = {titulo:"Curso React JS EWebik", capitulo:"Introducción a JSX"};
       return <Elemento1 {...props} />;
}

 

Todavía existen muchas más cosas que nos permite hacer JSX, pero eso le iremos viendo en otros vídeos con ejemplo y centrándonos en cada uno de ellos, por ejemplo:

  • Veremos condicionales
  • Ciclos
  • Etc.

Espero que esta segunda clase te haya gustado y hayas aprendido los fundamentos de JSX, te aseguro que las próximas clases te van a fascinar, nos vemos en el siguiente post.

🧐 Autoevaluación: ¿Que es React JSX?

¿Cómo funciona JSX?

¿Cómo funciona JSX?

Juan Carlos

Juan Carlos García

Desarrollador de software / SEO

Durante años he desarrollado plataformas dedicadas al rastreo satelital y varios sitios web que se encuentran en la primera página de Google, y hoy quiero compartir contigo lo que se en tecnologías como: Node JS, PHP, C# y Bases de datos.

Si quieres apoyarme sígueme en mis redes sociales y suscríbete a mi canal de YouTube.

EWebik

Diseño de páginas web y aplicaciones moviles.

© 2024 EWebik