首页
/ vite-plugin-qiankun 使用教程

vite-plugin-qiankun 使用教程

2026-01-16 09:38:00作者:咎竹峻Karen

项目介绍

vite-plugin-qiankun 是一个用于在微前端中集成 qiankun 的 Vite 插件。Qiankun 是一个在同一页面中同时运行多个子应用的微前端解决方案,它可以让我们将一个大型应用拆分成多个小型的子应用,每个子应用可以独立开发、独立部署、独立升级,实现了应用的解耦和团队协作的目的。

vite-plugin-qiankun 实现了自动化分包、公共依赖、沙箱隔离等核心功能。它可以根据配置将子应用的代码自动分割至子应用的独立 chunk 中,同时打包出一个公共依赖的 chunk,并在提前预加载时只加载一次,减少了流量和加载时间。另外,它还为每个子应用生成了一个独立的沙箱,在同一页面中渲染多个子应用时不会相互影响,保证了应用的稳定性和可靠性。

项目快速启动

安装

使用 npm 安装 vite-plugin-qiankun

npm install @sh-winter/vite-plugin-qiankun --save-dev

配置

vite.config.ts 中注册插件:

import { defineConfig } from 'vite';
import qiankun from '@sh-winter/vite-plugin-qiankun';
import { name as packageName } from './package.json';

export default defineConfig({
  base: `/${packageName}/`,
  plugins: [
    qiankun(packageName)
  ]
});

子应用导出

在子应用中导出生命周期函数:

export async function bootstrap() {
  console.log('react app bootstraped');
}

export async function mount(props) {
  console.log('props from main framework', props);
  ReactDOM.render(<App />, document.getElementById('react15Root'));
}

export async function unmount(props) {
  const { container } = props;
  ReactDOM.unmountComponentAtNode(container ? container.querySelector('#react15Root') : document.getElementById('react15Root'));
}

应用案例和最佳实践

案例一:Vue3 + Vite + Qiankun

在一个项目中管理多个 Vue3 子应用,每个子应用独立开发和部署。

案例二:React + Vite + Qiankun

在一个项目中管理多个 React 子应用,每个子应用独立开发和部署。

最佳实践

  1. 独立开发和部署:每个子应用应独立开发和部署,确保团队协作的高效性。
  2. 公共依赖管理:合理管理公共依赖,减少重复加载,提升性能。
  3. 沙箱隔离:确保每个子应用的沙箱隔离,避免相互影响。

典型生态项目

1. Qiankun

Qiankun 是一个基于 Single-SPA 的微前端框架,支持多种前端框架的集成。

2. Vite

Vite 是一个基于 ES 模块的构建工具,提供了快速的开发体验和高效的构建速度。

3. Vue3

Vue3 是一个流行的前端框架,提供了响应式数据绑定和组件化开发的能力。

4. React

React 是一个用于构建用户界面的 JavaScript 库,提供了高效的虚拟 DOM 和组件化开发的能力。

通过结合这些生态项目,可以构建出高效、稳定、可扩展的微前端应用。

登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
docsdocs
暂无描述
Markdown
827
5.48 K
kernelkernel
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
494
515
ops-nnops-nn
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
783
1.57 K
pytorchpytorch
作为 Ascend for PyTorch 社区的核心组件,TorchNPU 是昇腾专为 PyTorch 打造的深度学习适配插件,使 PyTorch 框架能够直接调用昇腾 NPU,为开发者提供昇腾 AI 处理器的超强算力。
Python
800
1.14 K
ops-transformerops-transformer
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
970
2.28 K
kernelkernel
deepin linux kernel
C
32
16
AscendNPU-IRAscendNPU-IR
AscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优
C++
480
312
jiuwenswarmjiuwenswarm
JiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。
Python
3.01 K
766
cannbot-skillscannbot-skills
CANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体,本仓库为其提供可复用的 Skills 模块。
Markdown
1.26 K
808
cann-learning-hubcann-learning-hub
CANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。
Jupyter Notebook
647
284