Flux 实现分析
Analysis of Flux implementations
我正在研究 React 生态系统,
我来自 AngularJS 世界,我不知道我应该使用哪个 flux 实现...
谁能解释一下什么是最好的,考虑到我喜欢 angularjs (1x)?
的 MV* 结构
我会感谢关注:
- 它们之间的区别
- 目标
- 学习曲线
- 使用分享
- 可测试性
- 可扩展性
- 遵守新标准(在 ES6 和 Web 开发趋势方面)
找了很多资源,但还是有很多疑惑!
提前致谢
我建议你从 Flux 开始,那是 Facebook 最初实现的 Flux 架构,这些例子可以帮助你理解它。
https://facebook.github.io/flux/
一旦了解了 Flux 的工作原理,您就会知道并决定要使用哪些其他实现,例如 Redux、Flummox、Alt 等...
这里有一个预先存在的参考 - 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。 Reflux 在这两个方面都名列前茅。我的理由是,如果一个框架很流行并且有很多人理解和使用它,那么它应该很简单。作为 React 和 Flux 的新手,我已经有很多东西要吸收,而且我发现 Reflux 更容易理解,因为它处理了 Flux 的许多设置需求。但是,如果您采取纯粹主义者的立场并希望坚持 FB 提出的核心 Flux 范式,那么对于下一个人来说,这可能是也可能不是一件令人满意的事情。我看过 Alt 和 Redux 更接近它,它们现在也很流行。
tl;博士;阅读 Flux,然后阅读至少三到四种不同的框架,然后选择。
我一直在为新项目使用 AltJS,老实说,我喜欢它。
2、4 - 由于 "usage sharing"(如果我正确理解您的意思),它非常漂亮。您创建 "logic" 和 "pure (dumb)" 组件,这些组件以后可以多次使用(没有必要创建相同的视图但具有不同的逻辑,因此您只需 "pick other store" 相同的 "pure" component")。它还可以轻松跟踪其他 Stores 状态,由于 AltContainer(你绝对应该尝试使用 AltContainer 的 AltJS)在一个组件中同时使用多个 Stores,并使用来自一个商店的操作,同时另一个商店得到更新(bindListeners).
3 - 关于学习曲线,我想说的是理解整个概念非常容易。从字面上看,您最多需要一天时间才能理解整个想法。当然那里也有更复杂的东西,但其他图书馆也总是有一些更复杂的东西。
5 - 您可以使用 "AltTestingUtils" 轻松测试操作和存储(甚至在他们的页面上有一个示例)。您还可以与 Chai 或您正在使用的任何其他断言库混合使用。所以我会说这很好
6 - Flux 的全部想法不也是关于 "scalability" 的吗?如果我们认为 AltJS 可能是 "purest" 实现之一,那么我会说它应该很好。到目前为止,我可以说它对我来说效果很好(尽管很难看到未来,因为现在它还没有那么大)。
虽然有一些工具可以在出现可伸缩性问题时提高性能(例如,AltContainer 确实有 shouldComponentUpdate)。
7 - 整个 AltJS 都是为了在 ES6 中工作,至少他们是这么说的(我也是这样使用的)
While alt examples encourage ES6 and alt was built with ES6 in mind it is perfectly valid to use plain old JavaScript instead.
前段时间我在其他主题中做了一个关于 AltJS 的 post,你可能会发现它有帮助
我正在研究 React 生态系统, 我来自 AngularJS 世界,我不知道我应该使用哪个 flux 实现...
谁能解释一下什么是最好的,考虑到我喜欢 angularjs (1x)?
的 MV* 结构我会感谢关注:
- 它们之间的区别
- 目标
- 学习曲线
- 使用分享
- 可测试性
- 可扩展性
- 遵守新标准(在 ES6 和 Web 开发趋势方面)
找了很多资源,但还是有很多疑惑!
提前致谢
我建议你从 Flux 开始,那是 Facebook 最初实现的 Flux 架构,这些例子可以帮助你理解它。
https://facebook.github.io/flux/
一旦了解了 Flux 的工作原理,您就会知道并决定要使用哪些其他实现,例如 Redux、Flummox、Alt 等...
这里有一个预先存在的参考 - 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。 Reflux 在这两个方面都名列前茅。我的理由是,如果一个框架很流行并且有很多人理解和使用它,那么它应该很简单。作为 React 和 Flux 的新手,我已经有很多东西要吸收,而且我发现 Reflux 更容易理解,因为它处理了 Flux 的许多设置需求。但是,如果您采取纯粹主义者的立场并希望坚持 FB 提出的核心 Flux 范式,那么对于下一个人来说,这可能是也可能不是一件令人满意的事情。我看过 Alt 和 Redux 更接近它,它们现在也很流行。
tl;博士;阅读 Flux,然后阅读至少三到四种不同的框架,然后选择。
我一直在为新项目使用 AltJS,老实说,我喜欢它。
2、4 - 由于 "usage sharing"(如果我正确理解您的意思),它非常漂亮。您创建 "logic" 和 "pure (dumb)" 组件,这些组件以后可以多次使用(没有必要创建相同的视图但具有不同的逻辑,因此您只需 "pick other store" 相同的 "pure" component")。它还可以轻松跟踪其他 Stores 状态,由于 AltContainer(你绝对应该尝试使用 AltContainer 的 AltJS)在一个组件中同时使用多个 Stores,并使用来自一个商店的操作,同时另一个商店得到更新(bindListeners).
3 - 关于学习曲线,我想说的是理解整个概念非常容易。从字面上看,您最多需要一天时间才能理解整个想法。当然那里也有更复杂的东西,但其他图书馆也总是有一些更复杂的东西。
5 - 您可以使用 "AltTestingUtils" 轻松测试操作和存储(甚至在他们的页面上有一个示例)。您还可以与 Chai 或您正在使用的任何其他断言库混合使用。所以我会说这很好
6 - Flux 的全部想法不也是关于 "scalability" 的吗?如果我们认为 AltJS 可能是 "purest" 实现之一,那么我会说它应该很好。到目前为止,我可以说它对我来说效果很好(尽管很难看到未来,因为现在它还没有那么大)。 虽然有一些工具可以在出现可伸缩性问题时提高性能(例如,AltContainer 确实有 shouldComponentUpdate)。
7 - 整个 AltJS 都是为了在 ES6 中工作,至少他们是这么说的(我也是这样使用的)
While alt examples encourage ES6 and alt was built with ES6 in mind it is perfectly valid to use plain old JavaScript instead.
前段时间我在其他主题中做了一个关于 AltJS 的 post,你可能会发现它有帮助