qiankun主系统、子系统传参(包括变量、方法 )

globalState主要用于数据共享,把方法、或者变量写进主系统的globalState里。

1.主系统调用子系统方法

主系统应用中定义和注册全局状态和方法

import { initGlobalState } from 'qiankun';

export function qiunkun() {
  // 定义一个全局方法
  let ways: any;
  // 初始化state-->ways为方法
  const actions: any = initGlobalState({  ways });
  // 设置新的值
  actions.setGlobalState({ ways });
  // 监听全局状态的变化 
  actions.onGlobalStateChange((newState, _prev) => {
    // if (typeof newState.ways === 'function') {
    //  方法判断一下再存到store中
    //  }
  });
}

子系统set要传递的方法

初始化的时候在main.ts中set一下

 mount(props) {
   instance.provide('$setGlobalState', props.setGlobalState);
  },

在相应页面把要传递的方法set进去以供主系统监听使用

const setGlobalState: any = inject('$setGlobalState');
  setGlobalState({ ways: saveAtlas });

2.子系统使用主系统的变量

主系统应用中定义和注册全局状态和方法

import { initGlobalState } from 'qiankun';

export function qiunkun() {
  // 定义一个全局状态
  let info: any;
  // 初始化state-->info为变量
  const actions: any = initGlobalState({  info});
}

子系统main.ts加载的时候获取数据

const qiankunStoreChange = async (props) => {
  if (props?.onGlobalStateChange) {
    await props?.onGlobalStateChange(async (value) => {
      // 将值存放在子系统中,以便其他页面使用
    }, true);
  }
};

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

文哈哈wcx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值