【问题标题】:Are all Flux for Angular Libraries Experimental?Angular 库的所有 Flux 都是实验性的吗?
【发布时间】:2015-08-08 18:02:10
【问题描述】:
【问题讨论】:
-
我在一个相对非常大的应用程序(1.3.x)中使用了flux-angular,它现在已经投入生产并且运行良好。但坦率地说,flux 只是一种设计模式,您可以使用调度程序和发射器轻松创建角度包装器(两者都只是处理程序的简单注册表)
标签:
javascript
angular
flux
【解决方案1】:
我编写了 ng-flux,我不会说它已经准备好生产,因为我没有时间在各种项目中对其进行测试。但是我目前在一个相当大的企业级应用程序中使用它。我同意flux-angular有一个很好的团队,我推荐他们的图书馆。无论如何,通量只是一种您可以自己整合的模式。任何基于 Angular 1.x 的方法的问题始终是 Angular 管理摘要周期的方式,如果您处理 Angular 命名空间之外的数据,有时您必须跳过箍以在后台更新视图。在 ng-flux 中,如果没有发生消化循环,我会强制执行消化循环。
Flux 作为一种模式对我来说效果很好,因为它使大型项目的调试和代码分离变得更加容易,所以我的目标是在已经有大量遗留 Angular 代码的项目中使用这种模式,并减少它花费的时间分类错误。这是一个包含大量计算的精算应用程序,因此有必要快速找到小的数据差异。编写 ng-flux 为我实现了这一点。
关于 Angular 2,我认为将 Facebook 的调度程序合并到您的项目中并允许它管理数据流会很容易。我认为一旦 Angular 2 准备就绪,根据我目前所读到的内容,使用第三方 JS 库应该会更容易——尤其是因为 Angular 2 将遵循更多类似于 React 的基于 Web 组件的架构。我什至看到了使用第三方路由器等会更容易(或更有机)的承诺......如果这是真的,我怀疑你是否真的需要一个库来管理你的基于通量的数据架构Angular 2 应用程序。在应用程序中简单地使用 Facebook Dispatcher 之类的东西作为单例(正确命名空间)对象应该是相当无缝的,您可以在 Angular 组件中引用该对象。我认为大多数库作者都意识到了这一点——对于 Angular 1.x 应用程序来说,使用这种模式比对于 Angular 2 应用程序将/应该是一个更大的问题。
https://github.com/facebook/flux/blob/master/src/Dispatcher.js
【解决方案2】:
我不是 ReactJS 的专家,但是我不确定将 Flux 与 AngularJS 集成是否真的是许多 Angular 开发人员的焦点。随着 2.0 的发布,Angular 团队继续使框架越来越自给自足,这样人们就不必将不同的库混在一起,而是可以只依靠 Angular 来完成手头的任务。
也就是说,flux-angular libary 似乎在 1.x 版本中是稳定的,并且似乎有很好的支持。我知道在处理 2.0 时它对您的情况没有帮助,但是,它看起来确实是一个足够可靠的 API;但是,话又说回来,也许我只是因为我能够使用 Angular 1.2 和 1.3 复制的功能而有偏见:)