Han sido horas de investigación y trabajo duro, pero siempre hago los tutoriales pensando en que le puedo cambiar la vida a una persona que programa o realiza una actividad similar, porque si hemos venido a este mundo, es para ayudar a los demás y esa es una de mi motivación principal, ayudar a que los demás aprendan a programar para que mejoren sus vidas. En las tres primeras partes de este tutorial creamos un formulario, un gráfico de datos y una tabla HTML. Llego el turno de unir estos tres proyectos y conformar la estructura o arquitectura Micro Frontend. Continuemos en esta útima parte del tutorial Como Crear un Micro Frontend con Vue 3, vamos con ello.
Aplicación que tiene una estructura Micro Frontend
Podcast: “Porque Debes Acostumbrarte A Resolver Los Problemas De Código Por Tu Cuenta” y “4 Errores Que Pueden Arruinar Tu Carrera Como Desarrollador” (Anchor Podcast):
Spotify:
Sound Cloud:
Apple Podcasts
Anchor Podcasts
Continuemos con el Post: Como Crear un Micro Frontend con Vue 3 – Parte 4 (Final).
Como Crear un Micro Frontend con Vue 3
Vamos a ver solo los aspectos técnicos más importantes de este proyecto. Hay muchos aspectos técnicos que ver y me pasaría horas y varias partes más en este tutorial, para explicarlos. Recuerda que arriba he colocado el código del proyecto alojado en un repositorio de GitHub, para que lo descargues y lo estudies e implementes en tus proyectos, en este código podrás ver otras cofiguraciones adicionales que he realizado en el proyecto. Asimismo arriba también hay una Demo para que veas el proyecto en acción.
Integración de las aplicaciones en una sola (Arquitectura Micro Frontend)
Para organizar la estructura Micro Frontend con las 3 aplicaciones he creado una cuarta aplicación con Vite, llamada layout, dentro de ella hay un archivo llamado main.js que se encuentra en microfrontend-vue3 > layout > src > main.js:
Default
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/microfrontend-vue3
/layout
├──/node_modules
├──/public
├──/src
├──/assets
├──/components
├──App.vue
├──main.js// Este archivo
├──style.css
├──.gitignore
├──index.html
├──package-lock.json
├──package.json
├──README.md
├──vite.config.js
/microfrontend-1-formulario
/microfrontend-2-analytica
/microfrontend-3-tabla
Dentro del archivo main.js he creado rutas dinámicas para llamar a las aplicaciones Formulario, Tabla y Analytica en la vista principal o Layout:
Para poder ensamblar las aplicaciones debes de instalar la dependencia o paquete vite-plugin-federation, en su repositorio puedes encontrar más información sobre como instalarlo y configurarlo. También encontrarás ejemplos de proyectos que te pueden servir de guía.
También hay un archivo llamado vite.config.ts que se encuentra en microfrontend-vue3 > layout > vite.config.ts:
Default
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/microfrontend-vue3
/layout
├──/node_modules
├──/public
├──/src
├──.gitignore
├──index.html
├──package-lock.json
├──package.json
├──README.md
├──vite.config.js// Este archivo
/microfrontend-1-formulario
/microfrontend-2-analytica
/microfrontend-3-tabla
En el archivo vite.config.ts ensamblo las 3 aplicaciones Vue: Formulario, Tabla y Analytica dentro de la opcion que dice federation. La primera ruta se llama home, ponerle este nombre es obligatorio, esta ruta home ensambla a la aplicación Formulario, debajo está la ruta microfrontend-2-analytica que ensambla a la aplicación Analytica y por último está la ruta microfrontend-3-tabla que ensambla a la aplicación Tabla, puedes agregar más aplicaciones si deseas:
// This is an invalid configuration, because the generate attribute is not supported on the host side
},
pinia:{
}
}
})
],
build:{
target:'esnext',
minify:false,
cssCodeSplit:true,
rollupOptions:{
output:{
minifyInternalExports:false
}
}
}
})
Las 3 aplicaciones Vue: Formulario, Tabla y Analytica, tienen un archivo vite.config.ts en donde también le he agregado la configuración federation, por ejemplo si abrimos el archivo vite.config.ts del Formulario que se encuentra en microfrontend-vue3 > microfrontend-1-formulario > vite.config.ts:
Default
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/microfrontend-vue3
/layout
/microfrontend-1-formulario
├──/node_modules
├──/public
├──/src
├──.gitignore
├──index.html
├──package-lock.json
├──package.json
├──README.md
├──vite.config.js// Este archivo
/microfrontend-2-analytica
/microfrontend-3-tabla
Podemos encontrar en el siguiente código la opción federation en donde definimos el nombre y la ruta de la aplicación:
// This is to test if the custom library can be SHARED, there is no real point
// myStore:{
// packagePath:'./src/store.js'
// }
}
}),
topLevelAwait({
// The export name of top-level await promise for each chunk module
promiseExportName:"__tla",
// The function to generate import names of top-level await promise in each chunk module
promiseImportName:i=>`__tla_${i}`
})
],
build:{
assetsInlineLimit:40960,
minify:true,
cssCodeSplit:false,
sourcemap:true,
rollupOptions:{
output:{
minifyInternalExports:false
}
}
}
})
La idea es que cuando compilamos el proyecto, el sistema detecta la configuración en el archivo vite.config.ts de cada aplicación y las ensambla.
También estoy usando el paquete pnpm que me permite ejecutar las 3 aplicaciones al mismo tiempo, sin necesidad de iniciarlas una por una.
Por ejemplo si quieremos iniciar la aplicación Formulario, tendria que ingresar al directorio de la aplicación microfrontend-1-formulario y adentro ejecutar el comando npm run dev para poder iniciarla.
Por favor descarga el proyecto alojado en GitHub para que lo ejecutes y veas bien como esta estructurado todo. Como mencione al inicio, me tomaría muchas partes más explicar todo lo que hay que hacer, en el Blog sería un poco complejo explicarlo todo y no hay mejor manera de aprender que probando la aplicación.
Entonces si ejecuto el siguiente comando, compilo las aplicaciones y lanzo el servidor del proyecto:
Luego de ejecutar el comando anterior, me dice que se ha iniciado todas las aplicaciones, cada uno dentro de una ruta independiente, para la aplicación Formulario usa la ruta http://localhost:5001/, para la aplicación Analytica usa la ruta http://localhost:5002/, para la aplicación Tabla usa la ruta http://localhost:5003/ y para la vista principal que contiene la estructura Micro Frontend utiliza la ruta http://localhost:5000/.
Entonces abrimos la ruta principal http://localhost:5000/ en el navegador y podemos ver nuestro proyecto Vue 3 que contiene 3 aplicaciones independientes, conformando asi una arquitectura micro Frontend:
Teniendo lista la arquitectura Micro Frontend, podrás hacer que cada aplicación haga algo más
Cada aplicación esta aislada, si modificas una de ellas, las demás no se verán afectadas.
Te recomiendo mirar la Demo que está al inicio de este tutorial, alli explico otros aspectos, que te servirán de mucho.
Conclusión
En este tutorial que consta de 4 partes, has aprendido a Como Crear un Micro Frontend con Vue 3, aprender a crear uno, te servirá como base para crear aplicaciones bajo la arquitectura Micro Frontend, más complejas. También se pueden usar otros frameworks o librerías y combinarlas, por ejemplo podrias crear una arquitectura Micro Frontend con Angular, React y Vue, pero ese es otro tema.
Nota (s)
No olvides que debemos usar la Tecnología para hacer cosas Buenas por el Mundo.
Síguenos en nuestras Redes Sociales para que no te pierdas nuestros próximos contenidos.
Somos expertos en programación, desarrollo de software y tecnología. En nuestro blog, encontrarás artículos y recursos sobre temas clave como desarrollo de aplicaciones móviles, Python, JavaScript, PHP, inteligencia artificial (IA), NFT, blockchain, ciberseguridad, pentesting, ciencia de datos, machine learning (ML), SEO, UX/UI, Gemini AI, ChatGPT, APIs, Visual Studio Code, programación orientada a objetos (POO) y mucho más. Nuestro objetivo es ofrecer contenido actualizado y útil para profesionales y entusiastas del mundo tecnológico.
Descubre lo que dicen de nosotros:
Nos Mencionan
.
Utilizamos cookies para proporcionar y mejorar nuestros servicios. Al navegar por nuestro sitio, usted acepta las cookies. Política de Cookies | Política de Privacidad
Nuevo Curso GRATIS en Nube Colectiva ! - 08-12-2024
Hace unas semanas iniciamos el Curso de Ciberseguridad desde Cero GRATIS:
Puedes encontrarlo en este enlace.
Aprovecha esta oportunidad y capacitate GRATIS para mejor como profesional.
Nueva Página Para los Apple Podcasts - 07-10-2024
La URL anterior de los los Apple Podcasts de Nube Colectiva ha sido retirada.
Ahora los Apple Podcasts de Nube Colectiva los puedes encontrar en el siguiente enlace:
https://podcasts.apple.com/pe/podcast/nube-colectiva/id1532848819
También lo puedes encontrar en nuestra sección de iconos de Redes Sociales:
Seguimos trabajando en mejorar la comunidad.
Nuevo Curso GRATIS en Nube Colectiva ! - 24-08-2024
Hemos iniciado el curso: Curso de Ciencia de Datos con Python
Puedes encontrarlo en este enlace o presionando la siguiente imagen:
Mucha suerte y nunca pares de aprender.
Nuevos Clientes - 01-08-2024
Los siguiente clientes están usando nuestros productos y servicios:
Nuestra cuenta de Pastebin ha sido compartida en Nube Colectiva:
Seguimos trabajando las 24 horas del día para brindarte la mejor experiencia en la comunidad.
Canal de WhatsApp y Telegram Corregidos - 15-05-2024
Asimismo comenzarán a tener nuevos episodios gratis que te ayudarán a crecer como profesional.
Trabajamos las 24 horas del día, para mejorar la comunidad.
Barra Horizontal de la Web Corregida en Móviles - 08-05-2024
Cuando un usuario visitaba nuestra página web desde su celular.
Le aparecía una barra horizontal, impidiendo que la web se muestra en su vista natural:
Hemos corregido el problema y ahora la web no muestra esa barra horizontal y se ve en su tamaño natural.
Seguimos trabajando las 24 horas del día, para mejorar la comunidad.
Actualizaciones en las Redes Sociales - 17-04-2024
Hemos actualizado el icono de Instagram.
También hemos agregado grupos de Skype para los que gustan usar esta herramienta de comunicación:
Seguimos trabajando las 24 horas y 365 días del año para mejorar tu experiencia en la comunidad.
Comenzaron los Trabajos en la Página de Eventos ! - 09-04-2024
Social
Redes Sociales (Developers)
Redes Sociales (Digital)