Skip to content

Qiankun微前端解决方案

可能是你见过的最完善的微前端解决方案🧐

Qiankun

📦 安装

bash
npm install qiankun
bash
yarn add qiankun
bash
pnpm add qiankun

🔨 快速开始

主应用

typescript
import { registerMicroApps, start } from 'qiankun';

// 注册微应用
registerMicroApps([
  {
    name: 'reactApp',
    entry: '//localhost:7100',
    container: '#yourContainer',
    activeRule: '/yourActiveRule',
  },
  {
    name: 'vueApp',
    entry: { scripts: ['//localhost:7100/main.js'] },
    container: '#yourContainer2',
    activeRule: '/yourActiveRule2',
  },
]);

// 启动 qiankun
start();

微应用

typescript
/**
 * bootstrap 只会在微应用初始化的时候调用一次
 * mount 会在每次进入微应用时调用
 * unmount 会在每次切出/卸载微应用时调用
 */
export async function bootstrap() {
  console.log('react app bootstraped');
}

export async function mount(props) {
  ReactDOM.render(<App />, props.container ? props.container.querySelector('#root') : document.getElementById('root'));
}

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

🌟 为什么选择 qiankun?

🎯 零侵入

对现有应用几乎零侵入,只需要暴露必要的生命周期函数即可

📱 全场景

支持基于路由的微应用加载和手动加载模式

🔒 安全隔离

完整的沙箱解决方案,包括 JS 隔离和 CSS 隔离

⚡ 高性能

支持预加载、缓存等多种性能优化方案

👥 社区

GitHub 讨论钉钉群微信群
qiankun 讨论钉钉群二维码查看群二维码

Released under the MIT License.