Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 这是使用React上下文API的好设计吗_Javascript_Reactjs_Redux_State_Jsx - Fatal编程技术网

Javascript 这是使用React上下文API的好设计吗

Javascript 这是使用React上下文API的好设计吗,javascript,reactjs,redux,state,jsx,Javascript,Reactjs,Redux,State,Jsx,我正在做一个React项目,该项目分为几个模块,每个模块包含几个组件。还有一个commons模块,其中包含两个或多个独立模块共用的组件。我使用上下文API来管理所有状态。下面是父组件(App.js)的结构模块1容器,模块2容器。。。包含各个模块的组件 return( <CommonsContextProvider> <Module1ContextProvider> <Module1Container />

我正在做一个React项目,该项目分为几个模块,每个模块包含几个组件。还有一个
commons
模块,其中包含两个或多个独立模块共用的组件。我使用上下文API来管理所有状态。下面是父组件(App.js)的结构<代码>模块1容器,
模块2容器
。。。包含各个模块的组件

return(
    <CommonsContextProvider>
        <Module1ContextProvider>
            <Module1Container />
        </Module1ContextProvider>
        <Module2ContextProvider>
            <Module2Container />
        </Module2ContextProvider>
        <Module3ContextProvider>
            <Module3Container />
        </Module3ContextProvider>
    </CommonsContextProvider>
)
返回(
)

我主要希望状态作为单个上下文分离,因为每个模块都会造成太多混乱。为每个模块提供一个单独的上下文,为跨模块的常用状态提供一个公共上下文,这是一个好主意吗?这种结构难道不是使真理的单一来源规则无效吗?更好的建议是最受欢迎的。

这种方法目前没有问题,但从长远来看,如果你需要维护项目,单一真相来源仍然更好

对于单一真相来源,使用redux(redux钩子)和 如果您需要模块化的状态视图,请为不同的组件使用不同的还原器,为全局状态使用公共还原器,然后使用redux的combineReducer将它们组合起来