Javascript 我们为什么要使用Redux?它对我们有什么帮助?

Javascript 我们为什么要使用Redux?它对我们有什么帮助?,javascript,reactjs,redux,react-redux,Javascript,Reactjs,Redux,React Redux,由于redux在一个地方拥有所有状态的超级存储,即root reducer,如果App.js中的每个组件都是所有组件的父组件,那么它与存储所有状态有什么区别(当然,还可以将您的道具钻到子组件上) 现在有人可能会说支柱钻井不好,我明白了,但这是Redux解决的唯一问题吗 更重要的是, 比如组件更新和所有这些发生了什么?如果我的mapStateToProps只使用购物车项目缩减器的状态,Redux是否重新呈现所有组件?(因为在App.js中这样做肯定会) dispatch例如,将动作传递给每个red

由于redux在一个地方拥有所有状态的超级存储,即root reducer,如果App.js中的每个组件都是所有组件的父组件,那么它与存储所有状态有什么区别(当然,还可以将您的道具钻到子组件上)

现在有人可能会说支柱钻井不好,我明白了,但这是Redux解决的唯一问题吗

更重要的是,

比如组件更新和所有这些发生了什么?如果我的mapStateToProps只使用购物车项目缩减器的状态,Redux是否重新呈现所有组件?(因为在App.js中这样做肯定会)

dispatch
例如,将动作传递给每个reducer并对其进行垃圾处理,就像更改父组件的状态重新呈现每个子组件一样


我发现很难理解Redux背后的核心思想是不绕过组件钻探。Redux背后的思想是作为持久存储的高级包装器


Redux的替代方案是不在App.js中存储状态。在App.js中存储状态是在App.js中存储状态的替代方法(实际上,如果这是您使用Redux的方法,那么您将大大简化如何使用variebles)

Redux的替代方案是手动将数据存储在Localstorage或Cookie或SQLite等中。Redux允许您简单地使用持久性存储,而不必担心底层技术细节


什么是持久存储?只有当您的数据保存在磁盘上,并且在用户退出web浏览器后仍然存在时,才会出现这种情况。

您是对的,从单一真实来源的角度来看,它将是相似的,但redux提供了更多。例如,您有更新存储的标准化方法

更重要的是,当您意识到将道具从根组件传递到大多数嵌套组件可能是不好的。在更大的应用程序中,开发人员经常忘记传递其中的一些,并且很难找到缺少哪些级别的道具。Redux有许多开发人员工具,可以帮助您观察商店中的更改。如果没有redux,将很难监控此类更改


也许它不是redux的一部分,但它也有您提到的重新招标优化。有一个名为reselect的redux插件,如果不需要,它将不会执行任何重新渲染/重新计算。

从useReducer获得的状态不会触发重新渲染。我真的很想在我的帖子中听到你的意见(我想你的帖子与我的相关):我举了一个用户Reducer的例子,就像Cart Item Reducer或任何类似的例子,而不是
useReducer
@BraveMaster我现在更改了我的例子:)以避免混淆你使用Redux的原因是,就像任何框架一样,它解决了很多问题,并提供了有用的功能,否则您将不得不自己处理。就这样。当然,你可以将所有东西都存储在App.js中。但任何有知识的开发人员都可能认为这是一个幼稚的实现,并且几乎肯定会编写一个模块来管理状态,他们可以跨项目使用。但如果你的网站只是一个很小的状态(比如用户对象),我个人的经验是,Redux是一个很大的滥杀滥伤。将您的状态存储在App.js中,然后继续。在需要时移动到Redux。“在App.js中存储状态是在App.js中存储状态的替代方案”嗯?