qiankun 是什么
qiankun 是基于 single-spa 的微前端实现库,可以帮助大家更快速的构建一个前端微架构体系。
微前端是什么
官方给出的概念是:微前端是一种多个团队通过独立发布功能的方式来共同构建现代化 web 应用的技术手段及方法策略。简单理解就是一个大型项目中,有一个主应用,N 个子应用,各个应用之间可以独立开发,独立运行,独立部署。
为什么要用微前端
我们应该都有这样的经历,一个项目一直在更新迭代,参与的人也越来越多,代码也越来越多,导致项目越来越不好管理,打包速度越来越慢,打包体积越来越大,部署不方便。尤其是在有一个很小的需求要更新时,我们需要重新打包部署整个项目,就很头大。所以我们就需要微前端,把一个单一的应用,转换为多个可以独立开发、测试、部署的小应用。但用户是无感知的,依旧认为是一个产品。
开始搭建微前端的主应用(基座)
安装 qiankun
1 | yarn add qiankun # 或者 npm i qiankun -S |
在主应用中注册微应用
我们在 src 文件夹下新建一个 qiankun/index.ts ,用来放我们的 qiankun 的配置信息
1 | // src/qiankun/index.ts |
在 main.ts 中引入
1 | // 引入qiankun |
微应用
Vue3 + Vite
我们先来看 Vue 微应用,Vue 微应用有一个点需要注意的就是 Vite , qiankun 与 Vite 不能一起使用,所以需要额外安装一个插件,以下是使用 Vite 时 qiankun 的配置
1 | npm install vite-plugin-qiankun |
微应用需要在自己的入口 js 导出 bootstrap
、mount
、unmount
三个生命周期钩子,以供主应用在适当的时机调用。
我们来修改子应用里的 main.ts 文件
1 | // main.ts |
打包配置修改,需要配置微应用的名字与端口号,使其与主应用配置的微应用保持一致
1 | // vite.config.js |
Vue3 不使用 Vite
这里我们就不需要安装任何插件了,只需在微应用的入口文件导出 bootstrap
、mount
、unmount
三个生命周期钩子,以供主应用在适当的时机调用就可以了。
同样还是修改 main.ts 文件,这里的思路和 Vue3 + Vite 的是一样的,只是写法略微不同而已
1 | // main.ts |
打包配置修改,需要配置微应用的名字与端口号,使其与主应用配置的保持一致
1 | // vue.config.ts |
Vue2
Vue2 和 Vue3 中不使用 Vite 是一样的,唯一的区别就是 Vue2 和 Vue3 的语法不太一样,直接上代码
1 | // main.js |
打包配置修改
1 | // vue.config.js |
这里只介绍了子应用为 Vue 的情况,当然我们也可以创建一个 React 或者 Angular 的子应用,其配置方法 qiankun 中都有示例
- 本文作者: Gladysdrea
- 本文链接: https://gladysdrea.github.io/blogs/2023/03/16/微前端/乾坤框架搭建/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!