我和Angular有很多性能问题(和其他许多人一样) . 我希望只将视图层更改为reactjs或Mithril . 我找到了React js的例子(例如http://www.bimeanalytics.com/engineering-blog/you-put-your-react-into-my-angular/),但没有找到Mithril的例子 . 任何人都可以建议使用秘银作为与Reactjs的角度视图的利弊吗?谢谢!
我和Angular有很多性能问题(和其他许多人一样) . 我希望只将视图层更改为reactjs或Mithril . 我找到了React js的例子(例如http://www.bimeanalytics.com/engineering-blog/you-put-your-react-into-my-angular/),但没有找到Mithril的例子 . 任何人都可以建议使用秘银作为与Reactjs的角度视图的利弊吗?谢谢!
2 回答
我不认为这里有一个客观的答案,作为秘银用户我有偏见,但这就是我的想法 .
在哲学方面,Mithril和React非常相似:您编写的视图函数描述了应用程序在任何给定时间的外观 . 在渲染性能方面,我认为没有一个明显的赢家 . 有链接/博客帖子说Mithril比React快,反之亦然 .
所以我认为你应该关注的是:
1)您更喜欢哪种API?使用React,您应该使用JSX,以免您需要对其文档进行反向工程 . 秘银也只有一个生命周期钩子(视图函数),而React有几个(比如shouldComponentUpdate) - 你需要所有这些钩子吗?
2)社区支持 - React在这里是明显的赢家,而且现有的与Angular集成的例子是一个胜利 .
3)兼容性 - React中的DOM重绘/差异在数据发生变化时完成,就像Angular一样,但Mithril的重绘以用户交互为中心(例如点击,路线变化,ajax请求) . 您可以手动重绘,但这不太可取 . 我不知道秘银会如何适应Angular设置 .
如果您决定使用Mithril,我建议您使用Google群组(https://groups.google.com/forum/#!forum/mithriljs)作为资源,或者至少报告您的体验 .
秘银和React有许多相似之处 . 我已经使用了它们,这里有一些优点和缺点 .
Mithril
优点:它的加载时间非常快 . 这是因为它的模板首先被编译,然后被提供给浏览器 . 您可以在JavaScript中编写Mithril视图 . 体积小,文档好,不会强迫您进入预定义的结构 .
缺点:小API可能使其不适合更大更复杂的项目 .
ReactJS
优点:React的单向数据绑定意味着您可以轻松查看UI的更新位置和方式,以及需要进行更改的位置 . 它还提供服务器端呈现,虚拟dom支持,良好的调试工具,易于编写的测试,易于重用的组件,通量架构模式以及广泛的SVG支持等 .
缺点:与Mithril相比内存很重,不是一个完整的解决方案,因为它主要关注视图,需要学习新的语法等 .
在我看来,React总体来说更可取 . 但是,如果您的应用程序不需要React提供的所有这些额外的东西,您应该使用Mithril .