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);
}
相关推荐
reembarkation3 小时前
vue3中使用howler播放音频列表
前端·vue.js·音视频
手握风云-3 小时前
基于 Java 的网页聊天室(三)
服务器·前端·数据库
weixin199701080163 小时前
《识货商品详情页前端性能优化实战》
前端·性能优化
Forever7_3 小时前
重磅!Vue3 手势工具正式发布!免费使用!
前端·前端框架·前端工程化
用户806138166593 小时前
发布为一个 npm 包
前端·javascript
树上有只程序猿4 小时前
低代码何时能出个“秦始皇”一统天下?我是真学不动啦!
前端·后端·低代码
TT_哲哲4 小时前
小程序双模式(文件 / 照片)上传组件封装与解析
前端·javascript
菜果果儿4 小时前
Vue 3 + TypeScript 常用代码示例总结
前端
前端付豪4 小时前
实现多角色模式切换
前端·架构
从文处安4 小时前
「九九八十一难」从回调地狱到异步秩序:深入理解 JavaScript Promise
前端·javascript