Hola, buenos días, React Summit. Mi nombre es Eric Rasmussen, y hoy estoy aquí para hablarles sobre pensar en lo que React puede hacer más allá del DOM. Desde React 0.14 en 2005, cuando usas React en un proyecto web, debes tener estas dos líneas en tu package JSON. Creo que muchos desarrolladores de React, especialmente los junior, realmente no entienden por qué necesitamos estas dos importaciones. Hacen dos cosas diferentes.
React es la biblioteca central que proporciona la API fundamental para construir componentes de UI. También tiene lógica de componentes, y gestiona el estado del componente y los métodos del ciclo de vida y hooks. Tiene un algoritmo de reconciliación que determina cómo deben aplicarse las actualizaciones a la UI, como qué partes volver a renderizar. Lo creas o no, es independiente de la plataforma. Puede usarse con diferentes renderizadores. React DOM es el más común, pero puede que hayas oído hablar de React Native para móviles. También maneja JSX, convirtiendo JSX en funciones de JavaScript, pero no dicta cómo se renderizan.
React DOM, por otro lado, es un renderizador específico para la web. Renderiza componentes de React al DOM real del navegador. Utiliza el DOM virtual renderizando primero a una versión en memoria del DOM, y luego haciendo diff para decidir qué partes actualizar. Hace esa manipulación del DOM. Maneja la actualización, montaje y desmontaje de elementos en el navegador. No es tan importante hoy en día, pero hace 11 años cuando React salió, la normalización de eventos del navegador era realmente importante porque diferentes navegadores tenían diferentes formas de eventos, y eso era realmente útil. También hace hidratación y renderizado del lado del servidor. No solo renderiza directamente al DOM, sino que puede renderizar a una cadena, que puede ser hecha en el servidor y descargada como si fuera un archivo HTML, y luego hidratada en el navegador, donde la hidratación significa simplemente reconectar todos tus listeners para hacer la página interactiva, y otras cosas como portales en las que no entraremos. El poder de React proviene del hecho de que, como desarrolladores de React, asumo que todos somos desarrolladores de React aquí, una vez que aprendes esto, sabes cómo crear UI declarativa que cambia con el tiempo. Pero, ¿a qué puedes renderizar que no sea el DOM? Bueno, hay bastantes renderizadores de React por ahí. El segundo más popular es React Native, donde no estás renderizando a un WebView en el entorno nativo, sino a componentes nativos reales. Luego hay cosas como React 360, que era una forma genial de renderizar a VR, pero Meta ya no lo gestiona. Presumiblemente todavía les importa VR, así que deben tener algo interno. Está React 3 Fiber para renderizar a 3.js. Está React Native Web, que es una forma de usar componentes de React Native en el DOM. Famosamente, el sitio web de Twitter fue construido con esto. Uno de mis favoritos es React PDF. No sé cómo son los interiores de un PDF, o cómo incluso construir un archivo PDF.
Comments