我有一个React-Redux应用程序,其中有几个选项卡,并且我将代码保存在每个选项卡的文件夹结构中。每个文件夹包含一个动作文件、一个服务文件、一个常量文件和一个reducer文件。
当我从服务器获取数据时,我将其作为一个大的嵌套对象获取,其顶层键是sectionA、sectionB、sectionC等。
每个选项卡可以使用来自多个部分的数据,例如,选项卡1可以使用sectionA和sectionB,选项卡2可以使用sectionB和sectionC等。
这在我将数据拆分为reducers的方式上产生了问题。如果redux存储中的顶级键是"tab1“和"tab2",并且我希望更新sectionB中的数据,那么我将不得不在两个不同的reducers中进行更新。另一方面,如果顶层键是"sectionA“、"sectionB”等,那么我的文件夹结构就是错误的。有什么办法可以解决这个问题吗?
谢谢。
发布于 2018-06-24 16:04:32
听起来你的想法很像前端开发人员,并根据状态与用户界面的关系对状态进行分类。
您可能需要考虑如何规范化状态形状:https://redux.js.org/recipes/structuring-reducers/normalizing-state-shape
Redux真的是你前端的一个小后端。我敢肯定,纯粹主义者会在一百万个层面上对此进行辩论,但它实际上就像一个小型的本地文档存储。
试着更多地从数据的角度来考虑redux结构,而不是把它放在屏幕上的什么地方。
标准化库是https://github.com/paularmstrong/normalizr下一级库
我仍然在争论我是否认为这太远了。我的应用程序开始从MVVC变成MVCMVCCVMMV...(你明白了,某种史诗般的罗马数字)。
我希望在本地的pubsub模型中保留多少数据,而不是总是访问我的API服务器?
用户打开一个页面,用新数据填充redux存储多长时间,直到出现内存问题?
redux中的垃圾收集是一个完整的额外对话,这一点值得一读:https://github.com/reduxjs/redux/issues/1824
老朋友丹·阿布拉莫夫对此发表了一些有用的想法。
我意识到这些本身都不是答案,但redux似乎有更多的“用例场景”,而不是一般的答案。
https://stackoverflow.com/questions/51007926
复制相似问题