从0到1搭建一个属于自己的qiankun项目,从此技术不再“千钧一发”
2024-02-11 02:23:35
前言
随着前端项目越来越复杂,单页面应用(SPA)的局限性也日益凸显。为了解决SPA的弊端,微前端架构应运而生。微前端架构将一个大型单页面应用拆分为多个独立的微应用,每个微应用都可以独立开发、部署和维护。这样不仅可以提高开发效率,还可以降低维护成本。
qiankun是一个基于Vue3的微前端框架,它提供了丰富的功能和完善的文档,可以帮助开发者快速搭建微前端应用。本篇文章将详细介绍如何使用Vue3从0到1搭建一个qiankun项目,并分享作者在搭建过程中遇到的问题及解决方案。
安装qiankun
首先,我们需要安装qiankun。我们可以通过以下命令来安装qiankun:
npm install --save qiankun
安装完成后,我们可以在项目中创建一个名为main.js
的文件,并在其中引入qiankun:
import { createApp } from 'vue'
import App from './App.vue'
import { registerMicroApps, setDefaultMountApp } from 'qiankun'
const app = createApp(App)
registerMicroApps([
{
name: 'micro-app-1',
entry: '//localhost:9001',
container: '#container',
activeRule: '/micro-app-1'
},
{
name: 'micro-app-2',
entry: '//localhost:9002',
container: '#container',
activeRule: '/micro-app-2'
}
])
setDefaultMountApp('/micro-app-1')
app.mount('#app')
在上面的代码中,我们首先创建了一个Vue3应用,然后通过registerMicroApps
函数注册了两个微应用。registerMicroApps
函数接收一个数组作为参数,数组中的每个元素都是一个微应用的配置对象。配置对象包含了微应用的名称、入口地址、容器元素和激活规则。
配置qiankun
在注册完微应用之后,我们需要配置qiankun。我们可以通过以下命令来配置qiankun:
import { qiankun } from 'qiankun'
qiankun.init({
// 应用加载之前
beforeLoad: (app) => {
console.log('应用加载之前', app)
},
// 应用加载之后
afterLoad: (app) => {
console.log('应用加载之后', app)
},
// 应用卸载之前
beforeUnmount: (app) => {
console.log('应用卸载之前', app)
},
// 应用卸载之后
afterUnmount: (app) => {
console.log('应用卸载之后', app)
},
// 单个应用配置
apps: [
{
name: 'micro-app-1',
entry: '//localhost:9001',
container: '#container',
activeRule: '/micro-app-1'
},
{
name: 'micro-app-2',
entry: '//localhost:9002',
container: '#container',
activeRule: '/micro-app-2'
}
]
})
在上面的代码中,我们首先初始化了qiankun,然后配置了qiankun的各种生命周期钩子函数。这些生命周期钩子函数会在微应用加载、卸载之前和之后被调用。我们可以在这些钩子函数中执行一些自定义操作,比如打印日志、加载资源等。
开发微应用
在配置完qiankun之后,我们就可以开始开发微应用了。我们可以创建一个新的Vue3项目,并在其中编写微应用的代码。微应用的代码可以与主应用的代码完全隔离,也可以共享一些代码。
在开发微应用时,我们需要特别注意以下几点:
- 微应用必须是一个独立的模块,它不能依赖于主应用的任何代码。
- 微应用必须具有自己的路由系统,它不能使用主应用的路由系统。
- 微应用必须具有自己的状态管理系统,它不能使用主应用的状态管理系统。
部署微应用
在开发完微应用之后,我们需要将微应用部署到服务器上。我们可以将微应用部署到CDN上,也可以部署到自己的服务器上。
在部署微应用时,我们需要特别注意以下几点:
- 微应用的入口地址必须是正确的。
- 微应用的资源必须是可访问的。
- 微应用的依赖项必须是正确的。
遇到的问题
在搭建qiankun项目时,我遇到了以下几个问题:
- 微应用加载失败 :这个问题可能是由于微应用的入口地址不正确或者微应用的资源不可访问造成的。
- 微应用之间通信失败 :这个问题可能是由于微应用之间没有正确地注册通信通道造成的。
- 微应用样式冲突 :这个问题可能是由于微应用之间没有正确地隔离样式造成的。
为了解决这些问题,我查阅了qiankun的文档,并在网上搜索了相关资料。最终,我找到了解决这些问题的办法。
总结
通过搭建qiankun项目,我学习到了如何使用Vue3开发微前端应用。我也了解到了qiankun框架的原理和用法。我相信,qiankun框架可以帮助我快速搭建出高质量的微前端应用。
我希望这篇文章对您有所帮助。如果您在搭建qiankun项目时遇到任何问题,欢迎在评论区留言。我将尽力为您解答。