Me gustaría entender cómo los navegadores manejan JavaScript una vez que se incluye con Webpack, por ejemplo. Según tengo entendido, se transmite al navegador un código JavaScript comprensible para el navegador, después de la transpilación del código React con Babel y el paquete de las diferentes partes de una aplicación, lo que significa que no hay más código relacionado con la biblioteca React. ¿Correcto? Y, sin embargo, aún es posible beneficiarse de las funcionalidades para las que se usa React, pero entonces, ¿dónde se encuentra React, cómo ocurre el intercambio con el navegador? ¿La biblioteca React está incluida de alguna manera en el código incluido?
Puedo imaginar un escenario como este:
editar:
import {useState} from 'react'; const [state, setState] = useState();Acabo de probar este código y en Babel'site y da:
"use strict"; var _react = require("react"); const [state, setState] = (0, _react.useState)();¿Significa esto que React está incluido en el paquete? En caso afirmativo, ¿cómo realiza el navegador las importaciones (he oído hablar de los cargadores de módulos, pero no tengo idea de si eso es lo que es, una búsqueda en la web no me da ningún resultado)?
Gracias de antemano por sus respuestas
En resumen, Webpack hace todo por ti. Realiza todas las comprobaciones de dependencia para asegurarse de lo que se necesita y debe ir al paquete. (También se asegura de que las bibliotecas no utilizadas no entren en el paquete, incluso sus propios módulos si no están referenciados). Incluye su propio código y todas las bibliotecas necesarias, incluido React, que usó en un archivo minimizado de forma optimizada para usted. Su aplicación carga ese archivo en index.html para que el navegador pueda ejecutar el código que desea.
Cuando ejecuta su aplicación de reacción en su entorno local, en la página de inicio, es decir: http://localhost:3000/, haga clic en ver fuente, verá esta línea
<script defer src="/static/js/bundle.js"></script>ahí es donde están su código y las bibliotecas.
Si ejecuta npm run build , generará una compilación aún más optimizada para el entorno de producción en la carpeta de build . ¡La estructura de index.html también será diferente a la del env local!