当前位置: 首页 > news >正文

vue2[webpack]中接入vue3[vite]的qiankun微前端服务

本文记录在vue2[webpack]老项目中,使用qiankun.js微前端服务,接入vue3[vite]新项目。


vue2[webpack]技术项目可参考以前的文章: vue项目落地(qiankun.js)微前端服务-zhanghaoran's blog


vue2为基座主应用; vue3为子应用。


改造vue2老项目为基座主应用

下载qiankun.js

npm i qiankun -S

在合适的地方给子应用预留位置

我是在layout/default.vue中 <router-view /> 下添加的, 也可以在index.html中添加,具体依据需求

// ~/layout/default.vue<template><div><head />< main><siderbar /><router-view /><div id="subApp"></div>// 子应用容器位置,必须指定</main><footer /</div>
</template>// or html:
// ~/public/index.html....
<div id="app"></div>
<div id="subApp"></div> // 子应用容器位置,必须指定

配置 main.js

// ~/src/main.js
import App from './App.vue'
import Router from './router'
// 导入qiankun.js
import {registerMicroApps,start} from "qiankun";new Vue({Router,render: (h) => h(App)
}).$mount('#app')// 注册子应用
registerMicroApps([{name: 'subAPP',             // 子应用名称entry: '//127.0.0.1:9000/',    // 子应用入口container: '#subAPP',       // 子应用所在容器activeRule: '/#/subAPP',       // 子应用触发规则(路径)},
]);// 开启服务
start()

配置子应用路由

// ~/src/router/index.jsrouter = [...{path: '/subAPP/:chapters*',name: 'subAPP',component: Layout,},...
]

:chapters*: 可以匹配所有子应用的路由

至此, 主应用基座部分配置完毕.



配置vue3[vite]子应用接入到微服务中

子应用不需要下载qiankun.js

因现在qiankun.js暂不支持vite,尝试几遍后,果断使用轮子:vite-plugin-qiankun

下载轮子

https://github.com/tengmaoqing/vite-plugin-qiankun

npm i vite-plugin-qiankun -S

配置vite.config.js

import qiankun from "vite-plugin-qiankun";export default defineConfig({plugins: [vue(),qiankun('subAPP', {useDevMode: true})],server: {port: 9000,headers: {'Access-Control-Allow-Origin': '*'}},
})

配置子应用的main.js

import {qiankunWindow,renderWithQiankun
} from 'vite-plugin-qiankun/dist/helper';
import { createApp } from 'vue';
import App from './App.vue';
import router from './router';let app;function render(props) {const { container } = props;app = createApp(App);app.use(router).mount(container instanceof Element? (container.querySelector("#app")): (container));
}
if (!qiankunWindow.__POWERED_BY_QIANKUN__) {render({ container: "#app" });
} else {renderWithQiankun({mount(props) {console.log('--mount');render(props)},bootstrap() {console.log('--bootstrap');},update() {console.log('--update');},unmount() {console.log('--unmount');app?.unmount();}});
}

配置子应用路由router

// ~/src/router/index.jsimport { qiankunWindow } from 'vite-plugin-qiankun/dist/helper';
import { createRouter, createWebHistory } from "vue-router";
const routes = [{path: '/',component: () => import("../views/index.vue")},{path: '/a',component: () => import("../views/a.vue")}
]
const router = createRouter({// 微服务启动时:路由前缀 + 基座父应用的规则// 独自启动时: 路由为: /history: createWebHistory(qiankunWindow.__POWERED_BY_QIANKUN__ ? '/#/subAPP/' : '/'),routes,});export default router

子应用配置完毕。


上图看效果

1671003764678微服务.png

相关链接

vite-plugin-qiankun: https://github.com/tengmaoqing/vite-plugin-qiankun

qiankun.js: https://qiankun.umijs.org/zh

之前的文章:https://blog.zhanghaoran.ren/article/html/vueXiangMuLuoDi(qiankun.js)WeiQianDuanFuWu.html


有问题请联系: 1441576268@qq.com

原文地址:https://blog.zhanghaoran.ren/article/html/vue2[webpack]ZhongJieRuvue3[vite]DeqiankunWeiQianDuanFuWu.html



喜欢的朋友记得点赞、收藏、关注哦!!!

http://www.dtcms.com/a/618957.html

相关文章:

  • Apache Hadoop-学习笔记1
  • 网站年龄和域名年龄贸易公司怎么做网站比较好
  • 如何拥有一个自己的网站网站安全管理制度建设下载
  • 有做阿里网站的吗网站开发后未付维护费
  • 百度推广必须做手机网站吗网页游戏网站mhn
  • 2018做网站的视频个人直播平台搭建
  • OpenAI 最新研究进展:定义和评估大语言模型中的政治偏见:OpenAI的透明度承诺
  • Streamlit 莫斯电码转换器学习笔记
  • 告别传统PPT!用reveal.js在文汇百川webOS上打造酷炫动态演示
  • 什么是行业网站?揭阳企业建站系统
  • 如何让新网站18.ppt网站是谁做的
  • 第四十三篇:MySQL事务:ACID特性、隔离级别与幻读、脏读详解
  • 网页设计个人网站设计wordpress 头部菜单
  • wordpress网站怎么加小游戏江门市住房和城乡建设局门户网站
  • 嘉兴快速建站模板响应式科技公司网站模板下载
  • 怎样增加网站的权重旧手机 搭建wordpress
  • Rust 命令行密码管理器工具开发
  • Restful协议举例,主要作用
  • h5网站开发流程图保山市住房和城乡建设局门户网站
  • 如何查找网站死链南京制作网站多少钱
  • 学习Ansible Playbook 核心语法
  • flink CDC 3.5.0
  • 阿里巴巴网站备案号用wordpress
  • 网站seo服务商seo文章外包
  • 微信网站设计运营用DW做的网站怎么分享给别人
  • 怎么建网站教程图解棋牌游戏开发多少钱
  • 广西智能网站建设哪家有h5页面设计是什么意思
  • AI 招聘智能体
  • 菏泽网站建设熊掌号微信怎么制作自己的小程序
  • 网站商城系统建设协会网站改版建议