- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
所以我最近在玩 React 和 Flux 架构。
假设有 2 个商店 A 和 B。A 依赖于 B,因为它需要 B 的一些值。所以每次调度程序调度一个 Action 时,首先执行 B.MethodOfB,然后执行 A.MethodOfA。
我想知道这种架构相对于将 A 注册为 B 的监听器并在每次 B 发出更改事件时只执行 A.MethodOfA 有什么优势?
顺便说一句:考虑一下没有 facebook 示例调度程序的“切换案例”的 Flux 实现!
最佳答案
事件处理方法的问题在于您无法保证哪个处理程序将首先处理给定事件。因此,在一个非常大、复杂的应用程序中,这可能会变成一个错综复杂的网络,您无法真正确定什么时候发生了什么,这使得商店之间的依赖关系管理变得非常困难。
基于回调的好处dispatcher是双重的:商店更新自身的顺序在需要此顺序的商店中声明,并且它也保证完全按预期工作。这是 Flux 的主要目的之一——让应用程序的状态可预测、一致且稳定。
在保证不会随时间增长或变化的非常小的应用程序中,我无法反驳您的建议。但小型应用程序最终有发展成大型应用程序的趋势。这通常发生在任何人意识到之前。
当然还有其他的 Flux 方法。已经创建了相当多的不同实现,它们对这个问题有不同的方法。但是,我不确定这些实验中的哪一个可以很好地扩展。另一方面,Facebook's Flux repo 中的调度员和 documentation 中描述的方法已经扩展到真正巨大的应用程序,并且经过了相当多的实战测试。
关于javascript - react 助焊剂 : Store dependencies,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25994478/
我是一名优秀的程序员,十分优秀!