反应替代品

时间:2014-01-01 00:35:26

标签: javascript performance javascriptmvc

我们在应用程序中使用事件驱动的JavaScript MVC框架,但是对于较大的数据集存在性能问题。我们已经实现了React中使用的许多相同的技术来缓解我们的问题(按时间间隔渲染,比较数据状态并仅更新更改的内容),但我担心我们正在实施我们自己的,不太完整的,框架。在我们采用React来处理数据量很大的UI之前,有哪些替代方案?

7 个答案:

答案 0 :(得分:33)

结帐RiotJS。它超级轻巧(只有几kbs),而且使用起来更方便。

Riot为所有浏览器带来自定义标签,包括IE8。想想React + Polymer,但语法和学习曲线都很小。

答案 1 :(得分:24)

奇怪,没人提到Vue.js Vue.js是一个用于构建交互式Web界面的库。它通过简单灵活的API提供数据反应组件 Awesome Vue.js - 与Vue.js相关的精彩内容的精选列表 这是现在的趋势!

答案 2 :(得分:10)

您可以考虑使用React之上的某个层来更好地进行状态管理。

  • Om是一个很好的库,如果你对ClojureScript没问题,你可以在作者blog中阅读更多相关内容;
  • Quiescent - 对React的轻量级ClojureScript抽象;
  • Reagent - React的简约ClojureScript界面​​;
  • Morearty.js - 使用纯JavaScript实现React的集中式状态管理。

这些库使用不可变数据结构来表示您的状态,并为每个组件定义shouldComponentUpdate方法,只使用快速===运算符进行比较。这种优化应该为您繁重的UI提供更快的速度,而理智的状态管理工具应该非常有助于组织和支持您的代码。根据我的经验,管理跨组件的可变状态非常困难。

答案 3 :(得分:4)

我最近发现了Deku

答案 4 :(得分:3)

最着名的当然是Angular JS,由Google维护(并不重要,但考虑到Facebook制作了React,我认为这很有趣)。有关两者的深入比较,请参阅this link

以下是其他一些选项:

答案 5 :(得分:3)

你可以尝试http://www.ractivejs.org/,它使用与facebook反应相同的虚拟dom概念

引自ractive blog http://blog.ractivejs.org/posts/whats-the-difference-between-react-and-ractive/

  

最引人注目的相似之处是使用虚拟DOM。喜欢   Ract,React发现创建一个抽象表示   DOM允许通过最小化来实现闪电般的操作   需要的DOM操作量(大多数webapps中的瓶颈)   发生。它还有助于服务器端渲染而无需一些   其他工具的用户必须使用疯狂的黑客。

答案 6 :(得分:2)

在转储现有代码之前,您可以尝试将React作为视图层集成到MVC应用程序中。例如,Backbone集成非常简单:

似乎没有任何可用于生产的替代React,只为你提供了" V"在MVC中。虽然那里有一些interesting ideas

要直接回答您的问题,Mithril是一个使用虚拟DOM的MVC框架,并且文档很好。

如果您在渲染大量元素时遇到性能问题,切换到Angular,Ember或RiotJS之类的东西不太可能是解决问题的最直接途径。

更新

DekuCycleJS也是选项。