微前端qiankun接入Vite子应用含Vue3和React18
主应用basic-vue-app
(vue3+vite)
安装qiankun
npm install qiankun
新建src/qiankun/index.js
文件,进行单独的抽离
import { registerMicroApps, start } from 'qiankun'
registerMicroApps([{name: 'vue-app', // 必须与微应用注册名字相同entry: 'http://127.0.0.1:5174', // 入口路径,开发时为微应用所启本地服务,上线时为微应用线上路径container: '#vue-app-container', // 微应用挂载的节点activeRule: '/micro-vue', // 当访问路由为 /micro-vue 时加载微应用props: {msg: "我是来自主应用的值-vue" // 主应用向微应用传递参数}},{name: 'react-app',entry: 'http://127.0.0.1:5175',container: '#react-app-container',activeRule: '/micro-react',props: {msg: "我是来自主应用的值-react"}}
])
start()
在main.js
导入
import "./qiankun"
在App.vue
挂载微应用节点
<div id="vue-app-container" /><div id="react-app-container" />
微应用micro-vue-app
(vue3+vite)
qiankun
目前是不支持vite
的,需要借助插件完成
安装vite-plugin-qiankun
npm install vite-plugin-qiankun
修改vite.config.js
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import qiankun from 'vite-plugin-qiankun'export default defineConfig({plugins: [vue(),qiankun('vue-app', { // 微应用名字,与主应用注册的微应用名字保持一致useDevMode: true})],server: {port: '5174'}
})
修改main.js
import { createApp } from 'vue'
import App from './App.vue'
import { store } from './store'import { renderWithQiankun, qiankunWindow } from 'vite-plugin-qiankun/dist/helper'const initQianKun = () => {renderWithQiankun({// 当前应用在主应用中的生命周期// 文档 https://qiankun.umijs.org/zh/guide/getting-started#mount(props) {render(props.container)// 可以通过props读取主应用的参数:msg// 监听主应用传值props.onGlobalStateChange((res) => {store.count = res.count// console.log(res.count)})},bootstrap() { },unmount() { },})
}const render = (container) => {// 如果是在主应用的环境下就挂载主应用的节点,否则挂载到本地const appDom = container ? container : "#app"createApp(App).mount(appDom)
}// 判断当前应用是否在主应用中
qiankunWindow.__POWERED_BY_QIANKUN__ ? initQianKun() : render()
微应用micro-react-app
(react18+vite)
跟vue
配置一样
但是会报这个错误
解决,在vite.config.js
删除react()
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
import qiankun from 'vite-plugin-qiankun'export default defineConfig({plugins: [// 在开发模式下需要把react()关掉// https://github.com/umijs/qiankun/issues/1257// react(),qiankun('react-app', { // 微应用名字,与主应用注册的微应用名字保持一致useDevMode: true})],server: {port: '5175',}
})
在jsx
中进行完整引入
import React from 'react'
main.jsx
与vue
的一样,就不贴代码了
需要完善的地方
- 当前,仅仅在开发模式的情况下没问题,还没有上生产环境
- 微应用没有安装路由,这个等以后项目需要在处理了
- react获取主应用的值为啥一直是0,因为是我写死的
代码仓库
https://github.com/skywalk94/qiankun-demo.git
微前端qiankun接入Vite子应用含Vue3和React18相关推荐
- qiankun 传统项目配置_微前端 qiankun 项目实践
原标题:微前端 qiankun 项目实践 作者:zxh1307 https://juejin.im/post/5ea55417e51d4546e347fda9 导语 最近在做微前端的项目 , 过程中真 ...
- 基于微前端qiankun的多页签缓存方案实践
作者:vivo 互联网前端团队- Tang Xiao 本文梳理了基于阿里开源微前端框架qiankun,实现多页签及子应用缓存的方案,同时还类比了多个不同方案之间的区别及优劣势,为使用微前端进行多页签开 ...
- Microapp 接入vite子应用
一.子应用 官网教程:https://micro-zoe.github.io/micro-app/docs.html#/zh-cn/framework/vite 1,步骤一:修改vue.config. ...
- 微前端 - qiankun 应用间通信
前言 上篇主要记录了如果使用 qiankun,本文记录下 qiankun 应用间如何通信. 一.如何划分子应用 在微前端架构中,我们应该按业务划分出对应的子应用,而不是通过功能模块划分子应用.主要原因 ...
- 微前端qiankun 问题
微前端qiankun 遇到问题,连接子应用之后报错 We're sorry but micro-front-web3 doesn't work properly without JavaScript ...
- 微前端qiankun 子应用使用阿里字体图标不显示
微前端打包部署后,子应用的iconfont的字体图标显示报错, 原因:打包后请求字体的路径是获取主应用下面的文件 解决方案:将字体图标打包成base64显示 // 打包成base64config.mo ...
- py获取前端的参数_微前端 qiankun 项目实践
(给前端大全加星标,提升前端技能) 作者:zxh1307 https://juejin.im/post/5ea55417e51d4546e347fda9 导语 最近在做微前端的项目 , 过程中真是踩了 ...
- 微前端 - qiankun
前言 qiankun 是一个基于 single-spa 的微前端实现库,旨在帮助大家能更简单.无痛的构建一个生产可用微前端架构系统. 本文主要记录下如何接入 qiankun 微前端.主应用使用 vue ...
- 微前端qiankun从搭建到部署的实践
最近负责的新项目用到了qiankun,写篇文章分享下实战中遇到的一些问题和思考. 示例代码: github.com/fengxianqi/-. 在线demo:qiankun.fengxianqi.co ...
最新文章
- IBM Rev2.6公包主板的问题
- ffmpeg解码优化参数
- 【深度学习】基于Torch的Python开源机器学习库PyTorch卷积神经网络
- 我的世界java1.15.2光影_快去打卡吧!海南首个“360光影馆”落户三亚
- squid 不缓存特定页面_【零基础学云计算】squid代理服务器介绍与配置(理论+实践)一...
- Java黑皮书课后题第3章:**3.24(游戏:抽牌)编写程序,模拟从一副52张的牌中抽一张牌,程序应显示牌的大小、花色
- java并发编程之AbstractQueuedSynchronizer
- ServletContext读取图片
- 论Postgres的“已提交的而且 xmin’比当前事务的XID小的记录对当前事务才是可见的”...
- FreePiano下载与使用
- python web全栈工程师招聘_【笔记】Web全栈工程师的自我修养(上)
- C++客户端面经总结
- 5G网络切片技术解析,一文让你读懂5G切片
- 微信公众账号api开发
- 社团联合会计算机教程,计算机与信息工程学院学生社团联合会
- 货币转换python代码_演示4:python与Tkinter的货币转换,4python,币值,含,tkinter
- ****女公务员辞职“卖瓜子” 4个月销售收入5000万【新媒体+电商】
- 隐私政策说明 - 掌上软考答题速记系统
- Java实现图书管理小练习(赌包辣条看完绝对会~)
- 文件cpy改进,文件加密,对文件两次运算可解密,密码65