将反应与redux一起使用时,是否可以将本地状态存储在state
对象中?通过行为将所有内容存储在状态树中很快变得单调乏味。感觉有些状态仅适用于应用程序的展现/展示,而不是逻辑。通过演示我的意思是动画/闪烁,面板的扩展/缩小状态,表格中的排序标准等等。处理反应和还原中的本地状态
24
A
回答
13
这很难回答,因为不同的人会将组件的不同部分归类为“状态”。
由于Redux与应用程序状态有关,作为经验法则,任何您期望应用程序级别“撤消/重做”按钮生效的内容都应该作为Redux操作发生。 Redux有一个撤销存储插件的事实可能只是因为应用程序状态的范围。
当然,一些动画不可撤销,因为这些动画应该真的与应用程序状态中的变化相关联,而不是自己改变。尽管如此,其余的例子听起来很像应用程序状态。如果我排序了一个表格,然后按下撤消,我绝对期望排序被撤消。
5
正如Tyrsius已经提到的 - 对此有不同的看法。
对于我们 - 作为一个经验法则 - 我们确保跟踪应用程序状态的所有内容,我们希望能够看到我们是否能够远程连接到某些用户当前会话。
如果我们不在意是否鼠标悬停在某个元素上,我们可能只会使用组件状态(如果我们需要状态的话)。
尽管我们在脚本中只有一些这样的情况,但我们想知道用户在大多数情况下看到的更容易调试的情况。
您提到了面板的展开/折叠状态 - 我们有时会为我们创建处理这种展开/折叠逻辑的组件,所以我们不必为我们创建的每个面板都编写这样的缩减器。
我们可以利用这些组件是这样的:
<Panel id="somePanelId">some content</Panel>
面板组件将确保应用程序状态中跟踪板激活状态。这样,保持代码简单并且不会让它爆炸是非常容易的。
7
现在这是回答在redux FAQs:
有这个没有“正确”的答案。有些用户更喜欢在Redux中保留每一个数据片段,以便始终保持其应用程序的完全可序列化和受控版本。其他人更喜欢在组件的内部状态内保持非关键或UI状态,例如“当前打开的下拉列表”。
使用本地组件状态很好。作为一名开发人员,您的工作是确定组成您的应用程序的状态以及每个州应该在哪里生活。找到适合你的平衡点,并与之配合。
相关问题
- 1. 还原类/模块的处女状态
- 2. 地理位置坐标没有准备好geolib处于反应原生状态
- 3. 为反应/还原应用程序构建状态
- 4. 将零件的反应状态与还原状态结合是否正确?
- 5. URL更改时的更新状态还原反应
- 6. 构建本地化反应/还原应用程序的商店
- 7. 处理变量的反应本地
- 8. 我们应该使用状态还是道具来处理投入反应?
- 9. 本机基地卡动态地反应原生和Firebase
- 10. iOS还原状态问题
- 11. 在反应中更新本地状态对象中的状态js
- 12. 反应原生不重叠状态栏
- 13. 有状态和无状态流处理
- 14. 反应+还原剂中还原剂的好策略?
- 15. 将cytoscape图还原为原始状态
- 16. ToolbarAndroid反应本地的动态字幕结合状态
- 17. 何处处理REST MVC应用程序中的还原操作?
- 18. 反应:原样呈现状态的文本
- 19. 信号处理程序和本地状态
- 20. 使用react-navigation管理反应本机中的状态
- 21. 反应整个应用程序的本地登录状态
- 22. 如何处理多个按钮的状态与反应?
- 23. 还原窗体组件不反映存储状态
- 24. 还原店的状态未更新
- 25. 如何管理本地的组件的状态作出反应/终极版
- 26. 将反应还原到django中
- 27. 背景地理位置反应原生
- 28. 如何在反应本机和Facebook的sdk中管理用户帐户状态?
- 29. 在jQuery中还原到原始的css状态?
- 30. 反应:基于本地存储的设置状态
我喜欢将应用程序状态用于您希望能够撤消的事情的建议。 – aviemet
什么时候我想要做类似改变类名时滑动元素做一些动画?这个东西应该还在redux行动中吗? –