js-plugins/qiankun/README.md
支持在 Farm 构建工具中使用 qiankun 微前端框架。
在 farm.config.ts 中配置插件:
import { defineConfig } from '@farmfe/core';
import { qiankunFarmPlugin } from '@farmfe/js-plugin-qiankun';
export default defineConfig({
...,
plugins: [
qiankunFarmPlugin({
appName: 'my-micro-app', // 微应用名称,必填
devMode: true // 是否开启开发模式,可选,默认为 false
})
]
});
// main.tsx
import React from 'react';
import ReactDOM from 'react-dom/client';
import { injectQiankun } from '@farmfe/js-plugin-qiankun/helper';
import App from './App';
let root: ReactDOM.Root | null = null;
injectQiankun({
async bootstrap() {
console.log('React 微应用启动');
},
async mount(props) {
console.log('React 微应用挂载', props);
const container = document.getElementById('root');
if (container) {
root = ReactDOM.createRoot(container);
root.render(<App />);
}
},
async unmount() {
console.log('React 微应用卸载');
if (root) {
root.unmount();
root = null;
}
}
});
// main.ts
import { createApp } from 'vue';
import { injectQiankun } from '@farmfe/js-plugin-qiankun/helper';
import App from './App.vue';
let app: ReturnType<typeof createApp> | null = null;
injectQiankun({
async bootstrap() {
console.log('Vue 微应用启动');
},
async mount(props) {
console.log('Vue 微应用挂载', props);
app = createApp(App);
app.mount('#app');
},
async unmount() {
console.log('Vue 微应用卸载');
if (app) {
app.unmount();
app = null;
}
}
});
stringbooleanfalse() => Promise<void>(props: unknown) => Promise<void>props 为主应用传递的属性() => Promise<void>(props: unknown) => Promise<void>props 为主应用传递的属性