Flux 实现分析
Posted
技术标签:
【中文标题】Flux 实现分析【英文标题】:Analysis of Flux implementations 【发布时间】:2016-03-21 11:43:05 【问题描述】:我正在研究 React 生态系统, 我来自 AngularJS 世界,我不知道应该使用哪个 flux 实现...
考虑到我喜欢 angularjs (1x) 的 MV* 结构,谁能解释什么是最好的?
我会很感激专注于:
-
它们之间的区别
目标
学习曲线
使用分享
可测试性
可扩展性
遵守新标准(在 ES6 和 Web 开发趋势方面)
我找到了很多资源,但我仍然有很多疑问!
提前致谢
【问题讨论】:
【参考方案1】:我建议你从 Flux 入手,这就是 Facebook 对 Flux 架构的原始实现,例子可以帮助你理解它。
https://facebook.github.io/flux/
一旦您了解了 Flux 的工作原理,您就会知道并决定要使用哪些其他实现,例如 Redux、Flummox、Alt 等...
【讨论】:
嗨,当然这是基本的,我会这样做,但是,我想要的是介绍这些实现、它们的差异、它们的重点以及其他有助于理解为什么有很多实现。【参考方案2】:这里有一个预先存在的参考 - https://medium.com/social-tables-tech/we-compared-13-top-flux-implementations-you-won-t-believe-who-came-out-on-top-1063db32fe73#.l0ui3uq2z。
然而,当我开始研究 Flux 时,我在 Github 上获得了社区评分,在 npm 上获得了下载次数。回流在这两个账户上都名列前茅。我的理由是,如果一个框架很流行并且很多人都理解和使用它,那么它应该很简单。作为 React 和 Flux 的新手,我已经有很多东西要吸收,而且我发现 Reflux 更容易理解,因为它处理了 Flux 的许多设置需求。但是,如果您采取纯粹主义者的立场并希望坚持 FB 提出的核心 Flux 范式,这对于下一个人来说可能是也可能不是一个可取的事情。我读过 Alt 和 Redux 更接近于它,它们现在也很流行。
tl;博士;阅读 Flux,然后阅读至少三到四个不同的框架,然后选择。
【讨论】:
您的链接已过时,因为它不了解 Redux。在我看来:Reflux 很简单——但使用this architecture 变得超级简单(和纯粹) 这就是我评论的重点。我认为在决定之前先了解通量然后阅读流行的实现更为重要。 Reflux 对我来说也是迄今为止处理通量概念的最简单方法。它没有给概念带来更复杂的调度程序部分(尽管理解起来非常重要)。您可以在此处关注 Reflux Sweeper 游戏示例:dimagimburg.com/…【参考方案3】:我一直在使用新项目 AltJS,老实说,我喜欢它。
2, 4 - 由于“使用共享”(如果我正确理解您的意思),它非常漂亮。您创建“逻辑”和“纯(哑)”组件,以后可以多次使用(创建相同的视图但具有不同的逻辑没有意义,因此您只需为相同的“纯”“选择其他商店” “组件”)。此外,它还可以轻松跟踪其他 Store 状态,在一个组件中一次使用多个 Store,这要归功于 AltContainer(您当然应该尝试使用 AltJS 和 AltContainer),并使用来自一个商店的操作,而另一个商店得到更新(bindListeners) .
3 - 关于学习曲线,我想说很容易理解整个概念。从字面上看,您最多需要一天时间才能理解整个想法。当然,那里也涉及到更复杂的东西,但在其他库中也总会有一些更复杂的东西。
5 - 您可以使用“AltTestingUtils”轻松测试操作和存储(他们的页面上甚至还有一个示例)。您还可以与 Chai 或您正在使用的任何其他断言库混合使用。所以我会说这很好
6 - Flux 的“可扩展性”难道不是一个完整的概念吗?如果我们认为 AltJS 可能是“最纯粹”的实现之一,那么我会说它应该很好。到目前为止,我可以说它对我很有效(尽管很难看到未来,因为现在它还没有那么大)。 虽然有一些工具可以在出现可伸缩性问题时提高性能(例如,AltContainer 确实有 shouldComponentUpdate)。
7 - 整个 AltJS 已经在 ES6 中工作了,至少他们是这么说的(我也这样使用它)
虽然 alt 示例鼓励 ES6,并且 alt 在构建时考虑到 ES6,但使用普通的旧 javascript 是完全有效的。
我前段时间在其他主题上发过一篇关于 AltJS 的文章,你可能会觉得很有帮助
https://***.com/a/34256824/5538090
【讨论】:
对于使用分享 我的意思是:它是社区的首选?因为在我看来是一个有用的指标。很抱歉造成误解。你的回答很有帮助! 啊,那我误会你了。 altjs 有很多用户,但它是否经常使用 redux od 回流 - 这个我不知道 您的回答是我问题的唯一中心,所以,赏金就是您的...谢谢!以上是关于Flux 实现分析的主要内容,如果未能解决你的问题,请参考以下文章
Fluid TYPO3:更新后出错:无法分析类:FluidTYPO3\Flux\ViewHelpers\Flexform\SheetViewHelper 可能未加载或没有自动加载器?