qiankun 通用模块foundatiion 在 项目project 模块单独引用组件

5 篇文章 0 订阅

相对麻烦一点

foundation  main.js

export async function mount(props) {
    window.commonComponents = props.commonComponents
    window.loadMicroApp = props.loadMicroApp;
       // ...
    render(props)
}

project main.js

// 引用组件
import MicroResultEntryfrom './views/components/MicroResultEntry.vue'
export async function mount(props) {
    window.commonComponents = props.commonComponents
    window.loadMicroApp = props.loadMicroApp;
    if(props.isLoad){
        props.commonComponents.MicroResultEntry = MicroResultEntry
    }
    // ...
}

在项目中调用注册组件:

 // 作为公共方法
 // 手动注册子应用 
 async doLoadMicroApp(microName, entry) {
            const app = window.loadMicroApp({
                name: `${microName}${new Date().getTime()}`,
                entry: entry,
                container: '#appContainer2',
                props: { commonComponents: window.commonComponents, isLoad: true }
            })
            await app.mountPromise;
        },

 最后在对应组件中调用

 async created() {
       await this.doLoadMicroApp('microProject', this.microProjectEntry)
       Vue.component('MicroResultEntry', window.commonComponents.MicroResultEntry)
    },

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue多模块开发可以采用Vue的子应用机制,每个子应用可以独立开发、打包、部署、维护,同时支持路由跳转。 具体实现步骤如下: 1. 创建一个主应用,可以是一个空的Vue项目,作为多个子应用的容器。 2. 创建多个子应用,每个子应用可以是一个独立的Vue项目。 3. 在主应用中安装qiankun(微前端框架),并注册子应用。 4. 在每个子应用中配置路由。 5. 在子应用中安装并配置vue-router。 6. 在子应用中编写路由跳转逻辑。 7. 在主应用中使用qiankun提供的API进行路由跳转。 示例代码: 主应用: ```javascript import { registerMicroApps, start } from 'qiankun'; registerMicroApps([ { name: 'app1', entry: '//localhost:8081', container: '#container', activeRule: '/app1', }, { name: 'app2', entry: '//localhost:8082', container: '#container', activeRule: '/app2', }, ]); start(); ``` 子应用: ```javascript import Vue from 'vue'; import VueRouter from 'vue-router'; Vue.use(VueRouter); const routes = [ { path: '/page1', component: Page1, }, { path: '/page2', component: Page2, }, ]; const router = new VueRouter({ routes, }); export default router; ``` 子应用路由跳转: ```javascript this.$router.push('/page1'); ``` 主应用路由跳转: ```javascript qiankun.navigateTo({ appName: 'app1', path: '/page1', }); ``` 注意事项: 1. 子应用必须支持跨域访问。 2. 子应用中的路由路径应该与主应用中注册的activeRule路径保持一致。 3. 子应用中的路由跳转应该使用Vue Router提供的API进行跳转。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值