主应用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.jsxvue的一样,就不贴代码了

需要完善的地方

  1. 当前,仅仅在开发模式的情况下没问题,还没有上生产环境
  2. 微应用没有安装路由,这个等以后项目需要在处理了
  3. react获取主应用的值为啥一直是0,因为是我写死的

代码仓库

https://github.com/skywalk94/qiankun-demo.git

微前端qiankun接入Vite子应用含Vue3和React18相关推荐

  1. qiankun 传统项目配置_微前端 qiankun 项目实践

    原标题:微前端 qiankun 项目实践 作者:zxh1307 https://juejin.im/post/5ea55417e51d4546e347fda9 导语 最近在做微前端的项目 , 过程中真 ...

  2. 基于微前端qiankun的多页签缓存方案实践

    作者:vivo 互联网前端团队- Tang Xiao 本文梳理了基于阿里开源微前端框架qiankun,实现多页签及子应用缓存的方案,同时还类比了多个不同方案之间的区别及优劣势,为使用微前端进行多页签开 ...

  3. Microapp 接入vite子应用

    一.子应用 官网教程:https://micro-zoe.github.io/micro-app/docs.html#/zh-cn/framework/vite 1,步骤一:修改vue.config. ...

  4. 微前端 - qiankun 应用间通信

    前言 上篇主要记录了如果使用 qiankun,本文记录下 qiankun 应用间如何通信. 一.如何划分子应用 在微前端架构中,我们应该按业务划分出对应的子应用,而不是通过功能模块划分子应用.主要原因 ...

  5. 微前端qiankun 问题

    微前端qiankun 遇到问题,连接子应用之后报错 We're sorry but micro-front-web3 doesn't work properly without JavaScript ...

  6. 微前端qiankun 子应用使用阿里字体图标不显示

    微前端打包部署后,子应用的iconfont的字体图标显示报错, 原因:打包后请求字体的路径是获取主应用下面的文件 解决方案:将字体图标打包成base64显示 // 打包成base64config.mo ...

  7. py获取前端的参数_微前端 qiankun 项目实践

    (给前端大全加星标,提升前端技能) 作者:zxh1307 https://juejin.im/post/5ea55417e51d4546e347fda9 导语 最近在做微前端的项目 , 过程中真是踩了 ...

  8. 微前端 - qiankun

    前言 qiankun 是一个基于 single-spa 的微前端实现库,旨在帮助大家能更简单.无痛的构建一个生产可用微前端架构系统. 本文主要记录下如何接入 qiankun 微前端.主应用使用 vue ...

  9. 微前端qiankun从搭建到部署的实践

    最近负责的新项目用到了qiankun,写篇文章分享下实战中遇到的一些问题和思考. 示例代码: github.com/fengxianqi/-. 在线demo:qiankun.fengxianqi.co ...

最新文章

  1. IBM Rev2.6公包主板的问题
  2. ffmpeg解码优化参数
  3. 【深度学习】基于Torch的Python开源机器学习库PyTorch卷积神经网络
  4. 我的世界java1.15.2光影_快去打卡吧!海南首个“360光影馆”落户三亚
  5. squid 不缓存特定页面_【零基础学云计算】squid代理服务器介绍与配置(理论+实践)一...
  6. Java黑皮书课后题第3章:**3.24(游戏:抽牌)编写程序,模拟从一副52张的牌中抽一张牌,程序应显示牌的大小、花色
  7. java并发编程之AbstractQueuedSynchronizer
  8. ServletContext读取图片
  9. 论Postgres的“已提交的而且 xmin’比当前事务的XID小的记录对当前事务才是可见的”...
  10. FreePiano下载与使用
  11. python web全栈工程师招聘_【笔记】Web全栈工程师的自我修养(上)
  12. C++客户端面经总结
  13. 5G网络切片技术解析,一文让你读懂5G切片
  14. 微信公众账号api开发
  15. 社团联合会计算机教程,计算机与信息工程学院学生社团联合会
  16. 货币转换python代码_演示4:python与Tkinter的货币转换,4python,币值,含,tkinter
  17. ****女公务员辞职“卖瓜子” 4个月销售收入5000万【新媒体+电商】
  18. 隐私政策说明 - 掌上软考答题速记系统
  19. Java实现图书管理小练习(赌包辣条看完绝对会~)
  20. 文件cpy改进,文件加密,对文件两次运算可解密,密码65

热门文章

  1. 什么是线程池以及它的作用是什么?
  2. W5500 NTP获取网络时间实现
  3. 警惕热门技术陷阱,数据库与存储技术规划如何制定?
  4. 用Golang写一个搜索引擎(0x0B)--- 第一部分结束
  5. iOS-强制横屏大总结
  6. Git笔记-查看TortoiseGit小乌龟工具记录的账号密码
  7. 示波器测试超声换能器波形/压电陶瓷片波形
  8. html表格中单元格的合并
  9. 2017android面试题
  10. 软件设计七大原则之开闭原则