You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在同一页面的多个React应用之间共享单个Redux store

同一页面多独立React应用共享Redux Store实现方案

核心原理

Redux的store是独立于React组件树的状态容器,其状态更新、事件订阅逻辑都基于自身实例实现,和上层包裹的Provider数量无关。只要多个应用绑定的是同一个store实例,就能实现跨应用的状态共享和同步。

实现方案

当项目约束不允许将多个应用放在同一个组件树下时,直接给每个独立应用的根Provider传入同一个store实例即可,参考代码如下:

import React from 'react';
import ReactDOM from 'react-dom';

import { Provider } from 'react-redux';
import store from './store.js';
import App1 from './App1.js';
import App2 from './App2.js';

// 挂载第一个独立应用
ReactDOM.render(
    <Provider store={store}>
        <App1 />
    </Provider>,
    document.querySelector('#app-1')
);

// 挂载第二个独立应用
ReactDOM.render(
    <Provider store={store}>
        <App2 />
    </Provider>,
    document.querySelector('#app-2')
);

注意事项

  • 必须保证所有应用导入的是同一个store实例,不要在每个应用内部单独创建新的store,否则状态还是互相隔离无法共享
  • 多应用共用store时建议按应用拆分reducer模块,统一规范action命名规则,避免不同应用的action命名冲突导致状态被意外修改
  • 任意应用内dispatch的action都会触发所有绑定了该store的应用的组件更新,性能敏感场景可配合reselect、React.memo等能力优化不必要的重渲染
  • 该方案支持2个及以上的独立应用共享状态,只需给每个应用的根Provider都传入同一个store实例即可

内容的提问来源于stack exchange,提问作者Stephane

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 11:24:10