在2015年,我们听到过angularjs开发者最寻常的评论也许是,'我已经花费大量美好的时间在angular1上,但是我现在要转向react'。在今年,Angular2的初步版本已经提早发布,但改进的测试版本还在等待当中。即使在angular2登陆之前,一场拔河类的比赛在angularjs开发者和react开发者之间已经开始。这导致了许多有偏见的文章和博客的写作,突出react作为赢家,而忘记了angular的本质优点。本文提出重要的客观的支持二个杰出的平台语言。
注:-许多开发人员认为比较angular2与react是无意义的,angular是一个框架,而react是一个库。然而,比较这两种技术是需要的,都是前端UI设计的技术,采用不同的方法。这是一种是不是一个核心的比较,以跟踪“明确的赢家”,通过分析所有这些分散的论点,但在一些关键方面,开发者往往忽略了在作出部分提升的时间。
React的目的
react的主要目的是为开发人员提供一个优秀的视图的应用程序,并提供可重用的声明式插件框架的有效方法。
Angular 2的目的
angular2的目的是为程序员提供一个完整的前端框架,强化了关注点的分解,而不是坚持一个特定的体系结构。
React和Angular2的相同点
React和Angualr2作为前端技术服务开发者,帮助他们构建网站或移动应用程序,基于组件的用户界面。这些技术采用用FRP & OOP模式,没有任何性能滞后。
React和Angular2的不同点
Angular2是一个充分发展的框架,而react是一个有强大社区库支持的库。Angular2提供很多功能。变化检测在二个平台之间是完全不同的。Angualr2有一个强制的关注点分离的依赖注入,和服务。DI管理反转控制Angular2。Angular2使用的语言是TypeScript,而React运行在ES5/ES6。都支持不同的方式定义UI,Angualr2使用HTML模板,React利用JSX。React支持静态类型,帮助它获得性能改进超过Angular2。
React的优缺点
- 程序员可以实现两个独立的方法。他们只能处理数据的变化(组件更新)或允许对依靠自动改变。它是一种更容易的技术学习。flux在处理DOM时带来性能上的提升。
- React的一个主要缺点是实现变化的检测。这个过程缺乏可扩展性。堆栈跟踪在React有点混乱。
Angular2的优缺点
- Angular2主要优势是程序员使用Angualr2处理变化检测。它提供了选择发展变化检测的完整的应用程序。单独的算法可用于快速倾斜缓存和动态变化检测。
- Angular2的学习曲线很低,因此新手开发人员发现大的困难在学习语法和结构。性能、错误信息和工具相比有点落后于React。
React的使用
React包含大多数开发人员都熟悉的库,因此开发人员可以集成库项目中容易得多。jQuery的应用程序可以快速迁移到React。React提供了更好的支持IE8,仍然是一个高度成熟技术。合成事件的功能只是在处理SVG。
Angular2的使用
Angular2是现代和内置保持更高的标准。它提供了一个巨大的支持web组件,加入的项目,和web工匠。Angular2,安排与方便的变化检测选项,和类似的实践(一旦掌握了它易于使用)。
Angular2和React的关键方面
- Angualr2和React都用不同的方式热加载,Angualr2依赖Typescript提供的原型,而React的flux-like提供一个成熟的热加载方式。
- React提供了一个更加成熟的处理在服务器端呈现时,但angular2在性能上保持领先。
- JSX(React)的开发人员不需要学习任何额外的语法,而是使用angular2开发者将不得不学习特定的语法(最好的例子是事件和属性)。
- Angualr2模板完全声明。一个组件可以使用多个模板,因此它支持简单的重用代码,尤其是在不同的视图。
- React支持可以为空,和简单的集成。另一方面,Angualr2有一个极好的文本编辑器,类型定义,支持接口。
- React为iOS和Android移动解决方案提供了更好的支持然而在很大程度上Angular2是NativeScript。
- Angualr在HTML模板包着JS和React(JSX)涵盖了一些HTML在JS。
- Angular的库是如此广泛,但React提供了一个更有效更有目的库。
- 在构建工具方面,React优于Angular2
- Angular2文件大小大于React,但它会降低,等推出了测试版(很大可能)。
- 错误消息和工具将更好在Angular2测试版。
- 我们可以期待Angular2测试版更像React。
- Angular2在服务器端渲染插件得到异步加载优于React。在React中,程序员用“shouldComponentUpdate”来避免调用阻塞。它有助于Angular2视图加载迅速。
- React有更多新的ideas,像clojure, redux, +om 等等。
最后
React和Angular2都是伟大的前端技术。在两者之间明确指出一个赢家是很难的。在大多数情况下两者之间的选择可能取决于舒适,技术和开发人员的生产力。
推荐阅读
翻译自:https://www.agriya.com/blog/2016/08/04/angular-2-vs-react-what-developers-often-forget/
翻译者:cll