创建一个web-group的文件夹,进入该文件夹创建主项目和子项目。
项目要求:vue3+vite+ts+qiankun
项目搭建命令: npm create vite@latest 项目名 -- --template vue-ts
主项目中,安装 qiankun
:npm install qiankun
子项目中,安装 vite-plugin-qiankun
:npm install vite-plugin-qiankun
在主项目中.根据需要安装 vue-router
、pinia
、pinia-plugin-persistedstate
等插件。
npm i vue-router pinia pinia-plugin-persistedstate
main.ts
文件配置import {
createApp } from 'vue'
import './style.css'
import {
registerMicroApps } from 'qiankun'
import router from './router'
import pinia from './store'
import App from './App.vue'
const app = createApp(App)
app.use(router).use(pinia).mount('#app')
registerMicroApps([
{
name: 'sub1-service', // 必选,微应用的名称,微应用之间必须确保唯一。
entry: '//localhost:3001', // 必选,微应用的入口。
container: '#subApp',
// activeRule: '/sub-app/app1', // 必选,微应用的激活规则。
activeRule: (location: Location) => {
return location.pathname.startsWith('/sub-app/app1')
},
loader: (loading: boolean) => {
// 可选,loading 状态发生变化时会调用的方法。
console.log(loading, '===loading');
},
props: {
router,
}
},
{
name: 'sub2-service', // 必选,微应用的名称,微应用之间必须确保唯一。
entry: '//localhost:3002', // 必选,微应用的入口。
container: '#subApp',
activeRule: (location: Location) => location.pathname.startsWith('/sub-app/app2'), // 必选,微应用的激活规则。
loader: (loading: boolean) => {
// 可选,loading 状态发生变化时会调用的方法。
console.log(loading, '===loading');
},
props: {
}
},
])
// 设置默认路由
// setDefaultMountApp("/sub1")
// 开启qiankun
// start()
imp