【发布时间】:2020-07-14 13:41:16
【问题描述】:
由于 redux 在 1 个地方(即 root-reducer)拥有所有状态的大型存储,如果我假设 App.js 中的每个组件都是所有组件的父级,它与存储所有状态之类的东西有什么不同(然后当然是把你的道具钻给孩子们)
现在有些人可能会说 prop Drill 不好,我明白了,但它是 Redux 解决的唯一问题吗?
更重要的是,
比如组件更新会发生什么?如果我的 mapStateToProps 只是使用 cart-item-reducer 的状态,Redux 是否会重新渲染所有组件? (因为在 App.js 中这样做肯定会)
dispatch 例如,通过传递给它的操作向每个 reducer 发送垃圾邮件,就像更改父组件的状态会重新渲染每个子组件一样?
我觉得很难理解
【问题讨论】:
-
从 useReducer 获得的状态不会触发重新渲染。 codesandbox.io/s/eventemitter-and-react-84eey?file=/src/…
-
我真的很想在我的帖子中听到您的意见(我认为您的帖子与我的帖子有关):stackoverflow.com/questions/62827419/…
-
我举了一个 User Reducer 的例子,就像 Cart Item Reducer 之类的,而不是
useReducer@bravemaster -
我现在更改了我的示例:) 以避免混淆
-
您使用 Redux 的原因是,与任何框架一样,它解决了很多问题并提供了有用的功能,否则您必须自己处理。就是这样。当然,您可以将所有内容存储在 App.js 中。但是任何知识渊博的开发人员都可能将其视为一种幼稚的实现,并且几乎肯定会编写一个模块来管理状态,他们可以跨项目使用它。但是,如果您的网站只是一个小小的状态(如用户对象),那么根据我的个人经验,Redux 就显得有点矫枉过正了。将您的状态存储在 App.js 中并继续前进。需要时移至 Redux。
标签: javascript reactjs redux react-redux