通量+反应 vs Backbone+反应
Flux+React vs Backbone+React
Flux+React 相比 Backbone+React 有什么优势。对于庞大的复杂代码库,除了代码开发的便利性之外,是否还有任何性能差异。
如果我们在使用 Backbone+React 的应用程序中模型和 React 视图之间存在 1:1 关系怎么办?
恕我直言,Flux 商店与 Backbone 模型/系列不兼容。
您可以将 Backbone 集合用作 Flux 存储,只要您将它们与 Flux 调度程序集成并允许它们发出事件以触发渲染。
我只是不确定 Backbone 模型本来就是不可变的数据结构,因此 React 更难优化渲染。
我还要说,我从来没有真正发现所有这些 Backbone models/collections 方法真的有用。在 Flux 架构中,API 请求往往由动作创建者而不是商店直接触发,因此允许多个商店监听相同的请求完成。
Where should ajax request be made in Flux app?
Flux 是构建 React 应用程序的架构师模式。因此,您可以在商店中使用 Backbone 模型和集合来获取和存储数据。
如果只想使用 React 的 Virtual DOM 功能,则无需使用 react.js。有很多库,为您的应用程序添加虚拟 DOM 功能 (https://github.com/Matt-Esch/virtual-dom)。
我的建议:如果您将使用 Flux 模式,我强烈建议您改用 http://facebook.github.io/immutable-js/ (may be coupled with http://ampersandjs.com/; don't forget to define your custom sync function if you are building isomorphic application). Basically there are no any advantages using backbone models with React (backbone is heavy, it needs underscore, which is slow; I use https://lodash.com/。
React 的一个好处是它是不可知的——你可以毫无问题地将它与 Backbone 模型和集合一起使用。
Flux 是一个建议的架构,但我认为该模型与 MVC 的差异很大,以至于在一天结束时不值得尝试同时使用它们 - 将 React 与 Flux 一起使用或将 React 与 Backbone模型和集合。
我不建议使用 Backbone models/collections 作为 Flux 存储 - 它们不是一回事。主要原因是 flux store 不能从外部改变——它不提供 setter。一个 Flux store 改变它自己的状态以响应动作。即使您按照 "Flux" 的方式使用 Backbone 模型作为存储,您的代码仍然有可能从存储外部直接操作状态,这可能会被团队的其他成员滥用,例如...
+1 Vetrenko Maxim 关于 backbone 和架构模式集成的回答。 Flux 是 React 应用程序的数据流模式,可以使用您希望的任何数据 store/model 框架。
使用 Flux+React 的优势:
- 更容易理解数据流
- 更好的代码组织
- 更容易调试模型的数据问题
- 划分数据store/model 来自视图的代码
有几个模型框架可以使用,我更喜欢 www.js-data.io for React+Flux。
Backbone 的模型集合是可变的,而 React 的主题是不变性。所以,从技术上讲,使用 Backbone+React 是在做一个反模式。
我同时使用了 react+backbone 和 react+flux。我肯定会比其他人更喜欢 react+flux。
Flux 是一种强制数据单向流动的架构模式。 Flux 模式是通用的,并不特定于 React 应用程序。使用 Flux,可以防止定义不明确的数据流和缺乏数据完整性。
如果您将选择 Backbone,只要您知道何时使用 Flux 方式和 Backbone 方式,就可以将这两者结合起来。
Flux+React 相比 Backbone+React 有什么优势。对于庞大的复杂代码库,除了代码开发的便利性之外,是否还有任何性能差异。
如果我们在使用 Backbone+React 的应用程序中模型和 React 视图之间存在 1:1 关系怎么办?
恕我直言,Flux 商店与 Backbone 模型/系列不兼容。 您可以将 Backbone 集合用作 Flux 存储,只要您将它们与 Flux 调度程序集成并允许它们发出事件以触发渲染。
我只是不确定 Backbone 模型本来就是不可变的数据结构,因此 React 更难优化渲染。
我还要说,我从来没有真正发现所有这些 Backbone models/collections 方法真的有用。在 Flux 架构中,API 请求往往由动作创建者而不是商店直接触发,因此允许多个商店监听相同的请求完成。
Where should ajax request be made in Flux app?
Flux 是构建 React 应用程序的架构师模式。因此,您可以在商店中使用 Backbone 模型和集合来获取和存储数据。
如果只想使用 React 的 Virtual DOM 功能,则无需使用 react.js。有很多库,为您的应用程序添加虚拟 DOM 功能 (https://github.com/Matt-Esch/virtual-dom)。
我的建议:如果您将使用 Flux 模式,我强烈建议您改用 http://facebook.github.io/immutable-js/ (may be coupled with http://ampersandjs.com/; don't forget to define your custom sync function if you are building isomorphic application). Basically there are no any advantages using backbone models with React (backbone is heavy, it needs underscore, which is slow; I use https://lodash.com/。
React 的一个好处是它是不可知的——你可以毫无问题地将它与 Backbone 模型和集合一起使用。
Flux 是一个建议的架构,但我认为该模型与 MVC 的差异很大,以至于在一天结束时不值得尝试同时使用它们 - 将 React 与 Flux 一起使用或将 React 与 Backbone模型和集合。
我不建议使用 Backbone models/collections 作为 Flux 存储 - 它们不是一回事。主要原因是 flux store 不能从外部改变——它不提供 setter。一个 Flux store 改变它自己的状态以响应动作。即使您按照 "Flux" 的方式使用 Backbone 模型作为存储,您的代码仍然有可能从存储外部直接操作状态,这可能会被团队的其他成员滥用,例如...
+1 Vetrenko Maxim 关于 backbone 和架构模式集成的回答。 Flux 是 React 应用程序的数据流模式,可以使用您希望的任何数据 store/model 框架。
使用 Flux+React 的优势:
- 更容易理解数据流
- 更好的代码组织
- 更容易调试模型的数据问题
- 划分数据store/model 来自视图的代码
有几个模型框架可以使用,我更喜欢 www.js-data.io for React+Flux。
Backbone 的模型集合是可变的,而 React 的主题是不变性。所以,从技术上讲,使用 Backbone+React 是在做一个反模式。 我同时使用了 react+backbone 和 react+flux。我肯定会比其他人更喜欢 react+flux。
Flux 是一种强制数据单向流动的架构模式。 Flux 模式是通用的,并不特定于 React 应用程序。使用 Flux,可以防止定义不明确的数据流和缺乏数据完整性。
如果您将选择 Backbone,只要您知道何时使用 Flux 方式和 Backbone 方式,就可以将这两者结合起来。