微前端:qiankun的五种通信方式
在使用qiankun微前端架构时,通信是必不可少的。以下是qiankun提供的五种通信方式:
- 全局状态通信(Global State):主应用和微应用都可以访问和修改的全局状态。
// 主应用中
import { initGlobalState } from 'qiankun';
const globalState = initGlobalState(initialState);
// 微应用中
import { getGlobalState } from 'qiankun';
const globalState = getGlobalState();
- 生命周期钩子函数通信:微应用可以通过导出生命周期钩子函数与主应用通信。
// 微应用中
export async function bootstrap() {
console.log('微应用启动时只调用一次');
}
export async function mount() {
console.log('微应用挂载时调用');
}
export async function unmount() {
console.log('微应用卸载时调用');
}
- 单独的通信方式(Sandbox):微应用可以访问自己的沙箱环境,但不能访问主应用或其他微应用的环境。
// 微应用中
import { sandbox } from 'qiankun';
const { container, instance } = sandbox;
- 微应用间通信(Inter-App Communication):每个微应用都可以发送消息给主应用和其他微应用。
// 主应用中
import { initIntercom } from 'qiankun';
const intercom = initIntercom(globalState);
// 发送消息
intercom.publish(msg);
// 订阅消息
intercom.subscribe(callback);
- 导出业务接口(Exports Interface):微应用可以导出业务接口供主应用调用。
// 微应用中
export function getData() {
return data;
}
// 主应用中
import { loadMicroApp } from 'qiankun';
loadMicroApp({
name: 'your-app',
entry: '//your.micro.app/index.html',
container: '#yourContainer',
props: { getData }
});
这些通信方式可以满足大部分的通信需求。在实际使用时,开发者可以根据具体场景选择合适的通信方式。
评论已关闭