React 栈(二):Redux

发布于 2022-05-05 13:12:15 字数 2897 浏览 1018 评论 0

为什么是 redux?

  • 前面做了 TodoMVC 就会发现,除了纯数据,更多的还有用户交互
  • 说白了,纯 React 需要传入很多回调函数来实现父子组件的交互,组件多了就很烦了
  • Redux 做的就是在 React 之上再提供一层状态管理 -> predictable states & management

而,双向绑定,很难提供这样可预测的状态,因为没有 single source of truth。应用 application 和 用户 view/event 都可以修改数据,这样很难达到单一数据源的维护,可预测的数据确定性自然就没有了。

Redux 的解决方案,就是在用户与应用中间加了一个中间层:状态。这样用户 触发事件 -> 事件 修改数据,就只有单一的数据修改源了。看神图。

数据操作放在 reducer,业务操作放 actions。有待回去学习体会。

什么是 Redux

Redux 是为了解决上面的问题而生的。因此,我们自然需要知道,Redux 是 如何解决这个问题的。

为了解耦行为发生 -> 状态改变这两个事情,Redux 将行为抽象为一个 Action,将状态改变抽象为一个 Reducer。Reducer 的作用就是,根据 action 的类型不同,操作相应的数据,这样就把数据的改变集中到了一个地方,也就是 reducer 里面。那么很自然的,reducer 要根据 action 的不同决定是否响应,就需要你去把 reducer 注册到某个 action 下。另外,Redux 提供了一个 Store 来统一存储所有的 action,这样,store 就成了 reducer 监听的 single source of truth,收到 action 时,store 会负责通知关注了该 action 的 reducer,让 reducer 做出响应。

资料

最好的教程 from Redux Creator

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

文章
评论
84963 人气
更多

推荐作者

微信用户

文章 0 评论 0

小情绪

文章 0 评论 0

ゞ记忆︶ㄣ

文章 0 评论 0

笨死的猪

文章 0 评论 0

彭明超

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文