qinakun实现全局状态管理

目录

qinakun实现全局状态管理

  • qiankun提供了一个全局的 initGlobalState 来共享数据,基座初始化之后,子应用可以监听到这个数据的变化,也能提交这个数据。

基座 src / index.tsx

js 复制代码
import { start, registerMicroApps, initGlobalState } from 'qiankun'

// root.render(XXX)
// qiankun加载子应用 + 启动 。。。

const state = { count: 1 }
const actions = initGlobalState(state);
// 主项目项目监听和修改
actions.onGlobalStateChange((state, prev) => { // state: 变更后的状态; prev 变更前的状态
  console.log('基座onGlobalStateChange',state, prev);
});
actions.setGlobalState(state);

start() // 3. 启动微服务

子应用 src / index.tsx

  • 在子应用挂载的时候 监听主应用的共享数据
js 复制代码
// 应用每次进入都会调用 mount 方法,通常我们在这里触发应用的渲染方法
export async function mount(props: any) {
  console.log('sub-react', props)
  props.onGlobalStateChange((state, prev) => { // state: 变更后的状态; prev 变更前的状态
    console.log(state, prev);
    // 将这个state存储到我们子应用store
  });
  props.setGlobalState({ count: 2 }); // 修改共享数据
  render(props);
}
相关推荐
神秘的猪头28 分钟前
ES6 字符串模板与现代 JavaScript 编程教学
前端·javascript
白兰地空瓶28 分钟前
从 "拼接地狱" 到 "模板自由":JS 字符串的逆袭指南
javascript
ideaout技术团队1 小时前
android集成react native组件踩坑笔记(Activity局部展示RN的组件)
android·javascript·笔记·react native·react.js
kaikaile19951 小时前
如何使用React和Redux构建现代化Web应用程序
前端·react.js·前端框架
江城开朗的豌豆1 小时前
TS类型进阶:如何把对象“管”得服服帖帖
前端·javascript
Cache技术分享1 小时前
226. Java 集合 - Set接口 —— 拒绝重复元素的集合
前端·后端
前端小咸鱼一条1 小时前
13. React中为什么使用setState
前端·javascript·react.js
没有bug.的程序员1 小时前
Spring Boot Actuator 监控机制解析
java·前端·spring boot·spring·源码
包饭厅咸鱼1 小时前
autojs----2025淘宝淘金币跳一跳自动化
java·javascript·自动化
OpenTiny社区2 小时前
如何使用 TinyEditor 快速部署一个协同编辑器
前端·开源·编辑器·opentiny