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);
}
相关推荐
用户47949283569154 分钟前
XSS、CSRF、CSP、HttpOnly 全扫盲:前端安全不只是后端的事
前端·后端·面试
O***p6046 分钟前
当“前端虚拟化”成为可能:构建下一代 Web 应用的新范式
前端
孤酒独酌22 分钟前
一次断网重连引发的「模块加载缓存」攻坚战
前端
jinzeming99925 分钟前
Vue3 PDF 预览组件设计与实现分析
前端
NuLL26 分钟前
全场景智能克隆工具:超越 JSON.parse(JSON.stringify())
javascript
编程小Y27 分钟前
Vue 3 + Vite
前端·javascript·vue.js
GDAL36 分钟前
前端保存用户登录信息 深入全面讲解
前端·状态模式
大菜菜42 分钟前
Molecule Framework -EditorService API 详细文档
前端
Anita_Sun44 分钟前
😋 核心原理篇:线程池的 5 大核心组件
前端·node.js
灼华_1 小时前
Web前端移动端开发常见问题及解决方案(完整版)
前端