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);
}
相关推荐
极速蜗牛18 分钟前
告别部署焦虑!PinMe:前端开发者的极简部署神器
前端·javascript
uhakadotcom1 小时前
Python Protobuf 全面教程:常用 API 串联与实战指南
前端·面试·github
by__csdn1 小时前
微前端架构:从理论到实践的全面解析
前端·javascript·vue.js·架构·typescript·vue·ecmascript
漫长的~以后1 小时前
Edge TPU LiteRT V2拆解:1GB内存设备也能流畅跑AI的底层逻辑
前端·人工智能·edge
小福气_1 小时前
自定义组件 vue3+elementPlus
前端·javascript·vue.js
程序员博博1 小时前
这才是vibe coding正确的打开方式 - 手把手教你开发一个MCP服务
javascript·人工智能·后端
piaoroumi1 小时前
UVC调试
linux·运维·前端
前端不太难2 小时前
RN 调试效率低,一点小改动就需要重新构建?解决手册(实战 / 脚本 / Demo)
前端·react native·重构
是谁眉眼2 小时前
vue环境变量
前端·javascript·vue.js
3秒一个大2 小时前
JSX 基本语法与 React 组件化思想
前端·react.js