Aquí, por ejemplo, tenemos una interfaz de usuario y hay dos características. Voy a llamarlas aplicaciones porque, para nosotros, las características deben poder funcionar de forma independiente sin el contexto de la aplicación más grande. Aquí tenemos un chat y un perfil de usuario. Luego, cada equipo podrá implementarlos de forma independiente. Los construirán y los desplegarán en un CDN. Luego usamos webpack para obtener esas dependencias utilizando module federation e integrarlas en tiempo de ejecución.
Una vez que tenemos esos scripts, los montamos en árboles de componentes independientes. Así que aquí tenemos dos características, dos aplicaciones, por lo que tendremos dos árboles de componentes independientes con dos rutas. Es posible que queramos compartir algo de estado entre ellos. No alentamos a los ingenieros a compartir estado entre los micro frontends, pero hay algunos casos en los que podemos querer hacerlo. Para hacer esto, tenemos un almacén muy ligero que permitirá a los equipos compartir algo de estado, y es un almacén muy simple. No puede derivar un estado, por ejemplo, a diferencia de Redux o Recoil. Creemos que son demasiado potentes para este paradigma, por lo que tenemos una implementación más simple que colocará toda la lógica del estado dentro de los límites de cada aplicación. Nuestro objetivo, una vez más, es tener un sistema muy desacoplado.
Permítanme mostrarles una demostración. Ahora es cuando las cosas se ponen divertidas. En primer lugar, no estoy usando mi computadora portátil. Aquí está el primer experimento. Voy a cambiar a la otra computadora portátil. Así que aquí tenemos una aplicación React. La estamos renderizando aquí. Puedes ver el árbol de componentes. Puedo moverme por el árbol y ver que si estoy sobre el input, también se resalta en la interfaz de usuario, lo mismo para el botón, y también puedo ver la pestaña de red y estoy obteniendo algunas dependencias, puedo filtrar por React aquí, y puedes ver que descargo React y React DOM porque los necesitamos para montar esta aplicación, pero también puedo ver esto en el contexto de una aplicación NextJS. Y aquí, si miro el árbol de componentes, puedo ver este componente, esta es la aplicación NextJS, puedo desplazarme hacia abajo y cuando llego a este punto en el árbol, veo que estoy resaltando el perfil de usuario pero no veo el input y el botón que vi antes. Así que tenemos este montaje, puedo desplazarme hacia abajo y ver otro árbol, puedo ver mi input y mi botón aquí, por lo que hay dos árboles distintos. También puedo ver la pestaña de red y, si filtro React, veo que aquí no estoy descargando React o React porque, en el contexto de la aplicación, está compartiendo esas bibliotecas con la aplicación React. Echemos un vistazo a este Mount Micro Front-end que recibe una URL y un nombre. Voy a cambiar a la otra computadora portátil. Ok, WebStorm. ¿Cómo hago las cosas más grandes en WebStorm? No uso WebStorm.
Comments