《vue3+ts+element-plus 后台管理系统系列》之微前端版本
2022-08-03 09:57:03
231
{{single.collect_count}}

系列文章目录


前言

这篇文章本来写于一年前,今天突然有人加我问起RuoYi-Vue3-qiankun库如何实现的,我瞬间失忆了,一年前的代码不知道怎么写的了。

所以写下这篇用来以后回忆。

 

一、RuoYi-Vue3-qiankun的由来


在 vue3+ts+element-plus 的基础上,实践了一下,将RuoYI前后端分离版本前端重写了一下,产生了RuoYi-Vue3 开源版本。

但是这个版本并不能更好的满足公司技术需求,在RuoYi-Vue3的基础上 加入了qiankun ,改成了微前端的版本。

RuoYi-Vue3仓库地址:https://github.com/RainManGO/RuoYi-Vue3
RuoYi-Vue3-qiankun仓库地址:
https://github.com/RainManGO/RuoYi-Vue3-qiankun

二、设计思路


最初的设计是这样的:

  • 主应用:负责注册加载子应用,不负责侧边栏菜单路由,子应用组织好路由,提供给主应用加载。
  • 子应用: 自己加载后端路由,然后通信主应用渲染上

但是这样做,我没法控制所有的子应用都加载完,主应用再渲染,也不利于统一管理后端路由。

最终设计

更改了思路,采用主应用加载菜单数据。主应用没有子应用组件和路由只是通过url 调用。

 

三、实现步骤细节


这里贴图,具体找到仓库代码查看。

1、主应用注册子应用

利用qiankun 微前端框架,看官网集成即可。
在这里插入图片描述

2、主应用加载后端路由(全部项目内容)

主应用通过require 动态添加菜单路由,这个代码是和单体项目公用没有修改,有些冗余,不需要往路由上挂 component,用不到的。

下一步跳转可以看清楚为什么。
在这里插入图片描述

3、主应用菜单跳转子应用

这里利用window.history.push进行跳转,qiankun 官网有解释就不多少了。
在这里插入图片描述

在这里插入图片描述

回帖
全部回帖({{commentCount}})
{{item.user.nickname}} {{item.user.group_title}} {{item.friend_time}}
{{item.content}}
{{item.comment_content_show ? '取消' : '回复'}} 删除
回帖
{{reply.user.nickname}} {{reply.user.group_title}} {{reply.friend_time}}
{{reply.content}}
{{reply.comment_content_show ? '取消' : '回复'}} 删除
回帖
收起
没有更多啦~
{{commentLoading ? '加载中...' : '查看更多评论'}}