主应用页面内容布局
主页面内容包括
- 头部
- 面包屑导航
- 子应用容器
- 加载状态
- 子应用内容
- 底部信息
子应用注册
创建导航路由列表
对应子应用页面路由,方便管理路由跳转
export const NAV_LIST = [{name: '首页',status: true,value: 0,url: '/vue3/#/index',hash: '',},{name: '资讯',status: false,value: 1,url: '/react15#/information',},{name: '视频',status: false,value: 2,url: '/react15#/video',hash: '',},{name: '选车',status: false,value: 3,url: '/vue3/#/select',hash: '',},{name: '新能源',status: false,value: 4,url: '/vue2#/energy',hash: '',},{name: '新车',status: false,value: 5,url: '/react16#/new-car',hash: '',},{name: '排行',status: false,value: 6,url: '/react16#/rank',hash: '',},]
主应用路由跳转规划
主应用和子应用都跳转到主应用的整体页面中
const routes = [{path: '/',component: () => import('../App.vue'),},{path: '/react15',component: () => import('../App.vue'),},{path: '/react16',component: () => import('../App.vue'),},{path: '/vue2',component: () => import('../App.vue'),},{path: '/vue3',component: () => import('../App.vue'),},];
子应用容器
子应用的加载和销毁,都在子应用容器中进行
<div class="micro-main-body-container"><Loading v-show="loadingStatus"></Loading><!-- 子应用容器 --><div id="micro-container" v-show="!loadingStatus"></div></div>
子应用注册到微前端框架
子应用列表
微前端框架中,需要一个子应用列表来管理子应用,需要有以下信息
{name: 'react15',// 唯一identry: '//localhost:9002/', // 子应用入口地址container: '#micro-container', // 子应用渲染容器activeRule: '/react15', // 激活状态},
完整子应用列表
export const navList = [{name: 'react15',// 唯一identry: '//localhost:9002/', // 子应用入口地址container: '#micro-container', // 子应用渲染容器activeRule: '/react15', // 激活状态},{name: 'react16',entry: '//localhost:9003/',container: '#micro-container',activeRule: '/react16',},{name: 'vue2',entry: '//localhost:9004/',container: '#micro-container',activeRule: '/vue2',},{name: 'vue3',entry: '//localhost:9005/',container: '#micro-container',activeRule: '/vue3',},];
注册子应用到微前端框架
将子应用列表,注册到微前端框架进行管理
main/micro/start.js
import { setList } from './const/subApps'export const registerMicroApps = (appList) => {// window.appList = appList;//! 设置子应用列表setList(appList);}
main/micro/const/subApps.js ```javascript let list = [];
export const getList = () => list export const setList = appList => list = appList ```
总结
主应用逻辑
- 主应用整理逻辑大概如下图所示


