javascript - react -Redux : Should all component states be kept in Redux Store

标签 javascript reactjs redux

假设我有一个简单的切换:

当我点击按钮时,颜色组件在红色和蓝色之间变化

我可能会通过做这样的事情来实现这个结果。

索引.js

Button: onClick={()=>{dispatch(changeColor())}}
Color: this.props.color ? blue : red

容器.js

connect(mapStateToProps)(indexPage)

action_creator.js

function changeColor(){
 return {type: 'CHANGE_COLOR'}
}

reducer.js

switch(){
case 'CHANGE_COLOR':
return {color: true}

但要编写一些我本可以在 5 秒内使用 jQuery、一些类和一些 css 实现的代码……

所以我想我真正想问的是,我在这里做错了什么?

最佳答案

Redux 主要用于“应用程序状态”。也就是说,与您的应用程序逻辑相关的任何内容。建立在它之上的 View 是该状态的反射(reflect),但不必为它所做的一切专门使用该状态容器。

只需问这些问题:这个状态对应用程序的其余部分重要吗?应用程序的其他部分是否会根据该状态表现不同?在许多轻微的情况下,情况并非如此。以下拉菜单为例:它打开或关闭的事实可能不会对应用程序的其他部分产生影响。因此,将其连接到您的商店可能有点矫枉过正。这当然是一个有效的选择,但并不能真正为您带来任何好处。您最好使用 this.state 并结束它。

在您的特定示例中,切换按钮的颜色是否会对应用程序的其他部分产生影响?如果它是应用程序主要部分的某种全局开/关切换,它绝对属于商店。但是,如果您只是在单击按钮时切换按钮颜色,则可以保留本地定义的颜色状态。单击按钮的 Action 可能会产生其他需要 Action 分派(dispatch)的效果,但这与它应该是什么颜色的简单问题是分开的。

一般来说,尽量让你的应用状态尽可能的小。您不必将所有内容都塞进去。必要时做,或者把东西放在那里很有意义。或者在使用开发工具时是否让您的生活更轻松。但不要过分强调它的重要性。

关于javascript - react -Redux : Should all component states be kept in Redux Store,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35328056/

相关文章:

redux - 为什么将 mapDispatchToProps 和 mapStateToProps 的方法分开?

javascript - JS调试流程?

javascript - 使用正则表达式更改连续的重复单词

javascript - 流提示 reducer 中的 Action 联合类型

javascript - 不能将 onChange 与 react-bootstrap ToggleButtonGroup 一起使用

javascript - html 输入类型文件接受图像不允许在 ios 11 中选择文件

javascript - 添加material-ui/core/Table 会导致数据异常,即使它尚未链接

javascript - 为什么 Mocha 测试不在 Travis 上运行,而是在本地运行?

javascript - 如何使用Jquery获取UL LI数组和输入?

node.js - 如何为 React 提供 index.html 并在相同路径处理路由?