我们在应用程序中使用事件驱动的JavaScript MVC框架,但是对于较大的数据集存在性能问题。我们已经实现了React中使用的许多相同的技术来缓解我们的问题(按时间间隔渲染,比较数据状态并仅更新更改的内容),但我担心我们正在实施我们自己的,不太完整的,框架。在我们采用React来处理数据量很大的UI之前,有哪些替代方案?
答案 0 :(得分:33)
结帐RiotJS。它超级轻巧(只有几kbs),而且使用起来更方便。
Riot为所有浏览器带来自定义标签,包括IE8。想想React + Polymer,但语法和学习曲线都很小。
答案 1 :(得分:24)
奇怪,没人提到Vue.js Vue.js是一个用于构建交互式Web界面的库。它通过简单灵活的API提供数据反应组件 Awesome Vue.js - 与Vue.js相关的精彩内容的精选列表 这是现在的趋势!
答案 2 :(得分:10)
您可以考虑使用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之类的东西不太可能是解决问题的最直接途径。