前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >微前端qiankun接入Vite子应用含Vue3和React18

微前端qiankun接入Vite子应用含Vue3和React18

作者头像
明知山
发布于 2022-10-24 07:37:09
发布于 2022-10-24 07:37:09
3.5K00
代码可运行
举报
文章被收录于专栏:前端开发随笔前端开发随笔
运行总次数:0
代码可运行

主应用basic-vue-app(vue3+vite)

安装qiankun

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
npm install qiankun

新建src/qiankun/index.js文件,进行单独的抽离

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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导入

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import "./qiankun"

App.vue挂载微应用节点

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  <div id="vue-app-container" />
  <div id="react-app-container" />

微应用micro-vue-app(vue3+vite)

qiankun目前是不支持vite的,需要借助插件完成 安装vite-plugin-qiankun

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
npm install vite-plugin-qiankun

修改vite.config.js

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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()

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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中进行完整引入

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import React from 'react'

main.jsxvue的一样,就不贴代码了

需要完善的地方

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

代码仓库

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
https://github.com/skywalk94/qiankun-demo.git
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-10-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
微前端架构:使用不同框架构建可扩展的大型应用
随着前端项目的不断膨胀,传统的单体应用架构逐渐暴露出越来越多的问题,比如开发周期长、维护困难等。为了解决这些问题,微前端架构应运而生,它借鉴了后端微服务的思想,将大型前端应用拆分成多个小型、可独立开发和部署的模块。这种架构模式不仅可以提高开发效率,还能更好地适应快速变化的业务需求。本文将通过实战的方式,介绍如何使用流行的微前端框架Qiankun构建一个简单的微前端应用,其中包括同时使用Vue和React作为子应用的技术栈。
井九
2024/10/12
1820
微前端架构:使用不同框架构建可扩展的大型应用
基于qiankun微前端实战 + 部署笔记
因业务需要,以下文字纯个人qiankun实战学习笔记,不谈原理只记操作过程,内容难免有纰漏部分,敬请不吝赐教批评指正。
同学小强
2022/08/24
1.4K0
基于qiankun微前端实战 + 部署笔记
微前端乾坤
qiankun 是一个基于 single-spa 的微前端实现库,旨在帮助大家能更简单、无痛的构建一个生产可用微前端架构系统。qiankun 孵化自蚂蚁金融科技基于微前端架构的云产品统一接入平台。
leader755
2022/03/09
1.5K0
微前端qiankun从搭建到部署的实践总结
最近负责的新项目用到了qiankun,写篇文章分享下实战中遇到的一些问题和思考。
coder_koala
2021/09/22
2.3K0
微前端qiankun从搭建到部署的实践总结
我们是怎么在项目中落地qiankun的
由于业务增长,团队拆分,我们需要将原有系统的一部分模块(Vue实现)迁移到另外一个系统(React)中。但两个系统技术栈不同,导致重构成本变大,但业务又希望在短期内看到效果,后面可以增量的重构。
GopalFeng
2022/08/01
1.5K0
我们是怎么在项目中落地qiankun的
乾坤(qiankun)微前端初体验
通俗易懂的来说,微前端是可以将一个大应用的不同部分进行独立的部署,各个部分之间相互独立,独立部署的能力允许他们构建孤立或松散耦合的服务。即将单页面前端应用由单一的单体应用转变为多个小型前端应用聚合为一的应用。
javascript艺术
2021/05/28
3.9K0
乾坤(qiankun)微前端初体验
微前端落地,乾坤小有乾坤
通俗易懂的来说,微前端是可以将一个大应用的不同部分进行独立的部署,各个部分之间相互独立,独立部署的能力允许他们构建孤立或松散耦合的服务。即将单页面前端应用由单一的单体应用转变为多个小型前端应用聚合为一的应用。
javascript艺术
2022/06/08
6530
微前端落地,乾坤小有乾坤
微前端框架 qiankun 项目实战(一)--本地开发篇
公司使用技术栈是vue,最近遇到了一个需求,要把原有后台管理系统的功能模块搬迁到新的后台管理系统上面去。原本这没有多复杂的事,直接复制粘贴改改就可以,但是有这么几个坑点,我瞬间陷入了沉思:
落落落洛克
2021/07/05
1K0
微前端框架 qiankun 项目实战(一)--本地开发篇
微前端之qiankun微前端
微前端项目是将每一个可以独立开发,测试,部署的子项目集合到一个主项目之下。对于用户来说,主项目仍然是一个完整的产品,而整个组装的过程对于用户来说,是透明的。
雪糕的晴天
2021/04/01
2.7K0
微前端之qiankun微前端
基于 qiankun 的微前端最佳实践(万字长文) - 从 0 到 1 篇
本文是基于 qiankun 的微前端最佳实践系列文章之 从 0 到 1 篇,本文将分享如何使用 qiankun 如何搭建主应用基座,然后接入不同技术栈的微应用,完成微前端架构的从 0 到 1。
coder_koala
2020/12/17
7.2K0
基于 qiankun 的微前端最佳实践(万字长文) - 从 0 到 1 篇
微前端方案 qiankun 只是更完善的 single-spa
一个前端应用能够单独跑,也能被作为一个模块集成到另一个应用里,这种架构方式就叫做微前端。
神说要有光zxg
2022/11/11
1.1K0
微前端方案 qiankun 只是更完善的 single-spa
当企微侧边栏遇上微前端
同样地,为了不浪费大家的时候,如果你不知道 企微侧边栏 是什么,这篇文章可以关掉了。
写代码的海怪
2022/03/30
1.4K0
当企微侧边栏遇上微前端
微前端x重构实践落地总结
大家好,我是海怪。最近换到了新部门,在做智能平台相关的内容。我接到的第一个任务就是把以前前端的项目重构一次。
写代码的海怪
2022/03/29
1.1K0
微前端x重构实践落地总结
深入浅出微前端
在微前端出现之前,一个系统的前端开发模式基本都是单仓库,包含了所有的功能、代码...
Careteen
2022/02/14
3.3K0
深入浅出微前端
微前端从singleSpa到qiankun
微前端解决什么问题?近几年前端的工程化知识开发愈演愈烈,后端解耦,前端聚合,兴起微前端的技术主要是因为SPA项目工程,得到了长足的发展,所有的微前端都是为了解决工程与工程之间的粘合问题即是 从所有收集的部分组成并返回一个无缝的HTML页面
用户10106350
2022/10/28
1.2K0
微前端从singleSpa到qiankun
qiankun 实战(一)
前两天用了一下微前端框架 icestark, 在实际架构搭建过程中发现中发现在 Vue 主应用子应用之间切换 tag (tag 分别主应用和子应用的页面)页签时会有子应用数据状态无法保存的情况,搜索了一波解决方案后发现,icestark 中 React 应用实现了对数据状态的缓存,Vue 里面没有这个实现。
草帽lufei
2022/07/29
7930
qiankun 实战(一)
2022年了你必须要学会搭建微前端项目及部署方式
一、微前端简介 微前端是一种类似于微服务的架构,它将微服务的理念应用于浏览器端,即将 Web 应用由单一的单体应用转变为多个小型前端应用聚合为一的应用。各个前端应用可以独立运行、独立开发、独立部署。 微前端的好处 应用自治。只需要遵循统一的接口规范或者框架,以便于系统集成到一起,相互之间是不存在依赖关系的。 单一职责。每个前端应用可以只关注于自己所需要完成的功能。 技术栈无关。你可以使用 Angular 的同时,又可以使用 React 和 Vue。 微前端的缺点 应用的拆分基础依赖于基础设施的构建
前端进阶之旅
2022/01/06
2.4K0
2022年了你必须要学会搭建微前端项目及部署方式
vue3微前端架构——基于蚂蚁qiankun框架
因为vite打包代码时,内部的esbuild会tree shake掉与qiankun相关的生命周期钩子,
liulun
2020/12/08
3.8K0
微前端框架qiankun项目实战(二)--踩坑与部署篇
在上一篇《微前端框架qiankun项目实战(一)--本地开发篇》发布后,感谢有网友提出了微应用的缓存问题,的确基于第一篇使用的registerMicroApps方式很难做到缓存,要做到应用缓存的方式使用手动加载管理微应用的方式是最好的,我将再写一篇补充篇使用loadMicroApp手动管理微应用,本篇我会模拟部署一下主应用和微应用,并将揭开我上一篇所谓的巨坑是什么。
coder_koala
2021/07/08
1.9K0
微前端框架qiankun项目实战(二)--踩坑与部署篇
在微前端qiankun中使用Vite你踩坑了吗?
是的,官方暂未有文档表明已经支持Vite。接下来我会从Vite聊起,然后一步步解析如何去解决在qiankun微前端体系中集成基于Vite构建的子应用.
树酱
2022/03/09
5.4K1
在微前端qiankun中使用Vite你踩坑了吗?
推荐阅读
相关推荐
微前端架构:使用不同框架构建可扩展的大型应用
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验