Flux + React vs Backbone + React
Flux + React比Backbone + React有什么优势? 除了庞大的复杂代码库的代码开发缓解之外,是否还有性能差异?
如果我们在使用Backbone + React的应用程序中的模型和反应视图之间存在1:1的关系呢?
Flux是构buildReact应用程序的架构师模式。 因此,您可以在商店内使用Backbone模型和集合来获取和存储数据。
如果只想使用React的虚拟DOMfunction,则不需要使用react.js。 有很多库,将虚拟DOMfunction添加到您的应用程序( https://github.com/Matt-Esch/virtual-dom )。
我的build议是 :如果您使用Flux模式,我强烈build议您使用http://facebook.github.io/immutable-js/ (可能会加上http://ampersandjs.com/ ;不要忘记定义您的自定义同步function,如果你正在build立同构的应用程序)。 基本上,使用React的主干模型没有任何优势(主干很重,需要下划线,速度较慢;我使用https://lodash.com/ )。
恕我直言Flux商店与Backbone模型/集合不是不相容的。 您可以使用Backbone集合作为Flux商店,只要您将它们与Flux调度程序集成,并允许它们发出事件来触发渲染。
我只是不确定骨干模型是否意味着首先是不可变的数据结构,从而使React难以优化渲染。
我也会说,我从来没有真正发现所有这些骨干模型/集合方法真的有用。 在Flux体系结构中,API请求往往会被动作创build者而不是商店直接触发,从而允许多个商店收听相同的请求完成。
Flux应用程序应该在哪里提交ajax请求?
React的一个好处是它是不可知的 – 你可以在没有问题的情况下将它与Backbone模型和集合一起使用。
Flux是一个build议的架构,但是我认为这个模型与MVC差异很大,在一天结束的时候,不值得尝试使用它们 – 使用React与Flux或React与Backbone模型和集合。
我不会推荐使用Backbone模型/集合作为Flux商店 – 它们不是一回事。 主要原因是一个助焊剂商店不能从外面突变 – 它不提供setter。 Flux商店为了响应行动而改变它自己的状态。 即使你使用Backbone模式作为商店,你的代码仍然有开放的可能性,直接从商店外部操纵状态,可能会被团队的其他成员滥用,例如…
骨干的模型集合是可变的,而反应是一个主题,不变性。 所以,技术上使用Backbone + React正在做一个反模式。 我已经使用了反应+主干和反应+通量。 我肯定会比其他人更喜欢反应+通量。
+1 Vetrenko Maxim关于骨干和架构模式整合的答案。 Flux是React应用程序的数据stream模式,可以使用任何您希望的数据存储/模型框架。
使用Flux + React的优点:
- 更容易理解数据stream
- 更好的代码组织
- 使用模型更容易debugging数据问题
- 从视图中分隔数据存储/模型代码
有几个模型框架可供使用,我更喜欢www.js-data.io用于React + Flux。
Flux是一种强制执行单向数据stream的架构模式。 Flux模式是通用的,它不是特定于React应用程序的。 通过Flux,可以防止定义不良的数据stream和缺乏数据完整性。
如果您将selectBackbone,只要您知道何时使用Flux方式和Backbone方式,就可以将这两者结合使用。