React
Full-stack JavaScript - BICTIA
Qué es React?
React es una librería de JavaScript para construir interfaces de usuario de manera rápida y
dinámica.
Fue desarrollada por Facebook y es una de las formas más utilizadas para crear
aplicaciones web junto con Angular y Vue.
Cómo funciona?
Componentes
El output del método render es un objeto JavaScript que apunta a un elemento DOM. Este
objeto no es entonces un dom real, sino una representación más ligera que se guarda en
memoria. A este objeto lo llamamos virtual DOM.
Virtual DOM
El Virtual DOM es lo que hace a React tan dinámico, pues con éste no necesitamos
manipular el DOM directamente (como lo hacíamos con código como
document.querySelector()). Cada vez que hay un cambio en el estado de un componente,
esto se ve reflejado en el Virtual DOM, y React sincroniza automáticamente este cambio
con el DOM real.
Es decir, que únicamente debemos cambiar el estado, y React hará el resto. Es por eso
React se llama así: ante un cambio de estado, React reacciona al cambio y
automáticamente lo pasa al DOM para que se represente visualmente.
Qué es JSX?
JSX es la abreviación de JavaScript XML. JSX nos permite describir nuestros componentes
de una forma parecida a como se va a ver en el DOM.
JSX funciona a través de Babel. Es decir, que cuando escribimos en JSX, luego va a pasar
por Babel, y éste lo va a convertir en código JavaScript sencillo (para que los intérpretes lo
puedan entender). (para ver el proceso, ver https://babeljs.io/repl).
Hola Mundo!
Empecemos de cero para crear nuestra primera aplicación. Primero, borramos el archivo
index.js que se encuentran en la carpeta “src”. Luego, volvemos a crear un archivo index.js
para escribirlo desde cero.
Necesitamos importar React para que Babel pueda llevar a cabo la conversión de JSX a
Vanilla JavaScript. Así, con esto ya podemos crear nuestro primer elemento JSX:
Sin embargo, todavía no hemos “renderizado” el elemento JSX para poder modificar el
Virtual DOM, y por eso necesitamos ReactDom.
ReactDom.render(elemento, document.getElementById("root"));
Con todos estos pasos, nuestro elemento JSX debería aparecer en el localhost:3000, y al
inspeccionarlo debería aparecer dentro del <div id=”root”> del archivo html del proyecto:
Lo importante aquí es que el archivo index.js, que es el que maneja el método para
“renderizar” componentes en el DOM, va a ser la forma de conectar nuestro archivo App.js
al archivo index.html. Es decir, que de ahora en adelante trabajaremos en App.js, y los
componentes que llemamos de allí se van a “renderizar” gracias al archivo index.js y su
ReactDOM.render(document.getElementByID).