微前端:qiankun的五种通信方式
    		       		warning:
    		            这篇文章距离上次修改已过446天,其中的内容可能已经有所变动。
    		        
        		                
                在使用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 }
});这些通信方式可以满足大部分的通信需求。在实际使用时,开发者可以根据具体场景选择合适的通信方式。
评论已关闭