微前端-qiankun-跨组件信息传递

本文介绍了微前端架构的特点,特别是使用qiankun工具时如何通过全局状态管理实现子应用之间的信息交换。代码示例展示了如何在主应用和子应用间进行跨组件通信和状态同步。
摘要由CSDN通过智能技术生成

微前端架构的一个关键特点是可以将多个独立的前端应用程序组合成一个整体,从而实现代码的复用和项目的可扩展性。同时,在这种架构下,不同的前端应用之间需要进行协作和信息交换,因此跨组件信息传递是一个重要的问题。

什么是微前端架构?

微前端架构是一种将前端应用程序拆分成多个独立的小应用,然后将它们组合成一个整体应用的架构模式。这种架构可以带来诸多好处,如代码复用、独立部署、增量升级等。而 qiankun 则是一个流行的用于实现微前端架构的工具。

在 qiankun 微前端架构中,我们可以使用全局状态管理来实现跨组件信息传递。qiankun 提供了 initGlobalState 方法来初始化全局状态,并通过 onGlobalStateChange 方法监听全局状态的变化,以及通过 setGlobalState 方法更新全局状态。

代码演示

主应用代码示例:
import { registerMicroApps, start } from 'qiankun';

registerMicroApps([
  {
    name: 'subapp1',
    entry: 'http://localhost:8081',
    container: '#subapp1',
    activeRule: '/subapp1',
  },
  {
    name: 'subapp2',
    entry: 'http://localhost:8082',
    container: '#subapp2',
    activeRule: '/subapp2',
  },
]);

start();
import { registerMicroApps, start } from 'qiankun';

registerMicroApps([
  {
    name: 'subapp1',
    entry: 'http://localhost:8081',
    container: '#subapp1',
    activeRule: '/subapp1',
  },
  {
    name: 'subapp2',
    entry: 'http://localhost:8082',
    container: '#subapp2',
    activeRule: '/subapp2',
  },
]);

start();
子应用1(subapp1)代码示例:
import { initGlobalState } from 'qiankun';

const initialState = { message: 'Hello from subapp1' };
const actions = initGlobalState(initialState);

actions.onGlobalStateChange((state, prev) => {
  console.log('subapp1 global state changed', state);
});

actions.setGlobalState(initialState);

export default actions;
子应用2(subapp2)代码示例:
import { initGlobalState } from 'qiankun';

const initialState = { message: 'Hello from subapp2' };
const actions = initGlobalState(initialState);

actions.onGlobalStateChange((state, prev) => {
  console.log('subapp2 global state changed', state);
});

actions.setGlobalState(initialState);

export default actions;

在上述代码示例中,主应用通过 qiankun 的 registerMicroApps 方法注册了两个子应用,并通过 start 方法启动了整个微前端应用。在子应用中,我们使用 initGlobalState 方法初始化了全局状态,并通过 onGlobalStateChange 方法监听全局状态的变化,并通过 setGlobalState 方法更新全局状态。

在这个示例中,我们展示了如何在 qiankun 微前端架构中进行跨组件信息传递。通过这种方式,主应用和子应用之间可以实现灵活的信息交换,从而构建出更加强大和高效的微前端应用系统。

  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值