首页 > 解决方案 > Redux Motivation:突变和异步的例子

问题描述

为了理解 Redux 的动机,我阅读了官方链接https://redux.js.org/introduction/motivation和这个 stackoverflow 问题Explain Redux : mutation and asynchricity但我无法得到它,因为两个链接都缺少示例。谷歌搜索也没有显示任何页面,其中包含突变和异步组合的示例。

我想要的是现实生活中的 Web 应用程序示例,其中突变和异步的组合是一团糟。每个页面/博客都只是从轻松管理状态开始,但它们缺少真正的 Web 应用程序示例,即变异和异步组合解释(动机)。任何人都可以举一个很好的例子来帮助我。

动机是说:我们混合了人类大脑很难推理的两个概念:突变和异步。我称它们为曼妥思和可乐。两者都可以很好地分离,但它们在一起会造成混乱。. 任何人都可以举一个真实的例子吗?

标签: javascriptredux

解决方案


使用异步和突变,您将失去管理状态的“单一事实来源”。

假设您有一个初始化为 0 的全局计数器。您还有 2 个带有异步处理程序的 Button 组件,inc 和 dec 会影响全局计数器。

如果我点击 inc, inc, dec; 在任何时候计数器的值是多少?

我们无法知道哪些事件已经被触发 b/c 他们不能保证按顺序出现。因此,如果我正在查看计数器值 1,它是 b/c 吗:

已解决:公司

待定:公司,十二月

或者

已解决: inc, inc, dec

使用异步函数和可变状态,除非什么都没发生,否则您永远不会真正知道您的状态是什么。


推荐阅读