这个问题基于有关磁通的文章。
一种常见的做法是在常数对象中定义所有操作类型,并在整个应用程序上引用该对象以保持一致性。
普通实践是什么意思?我的意思是作者为什么决定这是一种普遍的做法?它是基于什么?什么是真实源?如果我决定在较低情况下使用动作类型怎么办?
通量是一种设计模式,而不是特定的库或实现。当应用程序大小和复杂性增长时,此模式有助于处理状态。
例如:考虑一个用于管理电子邮件的应用程序,在单击电子邮件时,我们将具有lock state 更改:
- 用"电子邮件视图"替换" inbox视图"(电子邮件列表(。
- 将电子邮件标记为本地
- 减少当地的总未读计数器
- 更改浏览器的URL
- 发送Web请求以将电子邮件标记为服务器上的电子邮件
处理用户单击电子邮件的顶级组件中的功能必须描述发生的所有 state 更改。这将加载一个具有很多复杂性和责任的单个功能。
redux是通量的一个概念,具有以下关键思想来解决问题:
- 所有应用程序的数据都在单个数据结构中,称为 state ,该数据结构在商店中保存。
- 您的应用程序从此商店读取 state 。
- 状态永远不会直接在商店外突变。
- 散发出描述发生了什么的动作的观点。
- 通过组合旧状态和一个称为reducer的函数来创建一个新的状态。
Store 是一个对象,在应用程序中保存全部 - 或至少 - 状态。它将在顶级组件中创建和实例化。所有儿童组件都将访问IT实例。
看看您的引用与 store 概念的相似之处:
" ...定义常数对象中的所有动作类型,并引用 对象在整个应用程序中以保持一致性。"