最近前端圈撕得厉害,正能量的我们还是用干货来表达自己的态度吧~ 本文译自 Angular 2 versus React: There Will Be Blood ,其实之前有人翻译过,但是翻得水平有一点不忍直视,我们不希望浪费这篇好文章。
Angular 2 已经发布 Beta 版,而且似乎很有信心在 2016 年成为热门框架。是时候进行一场巅峰对决了,我们来看看它如何与React 这个 2015 年的新宠抗衡。
好了,我们开始吧,这场对决将会非常血腥。
两者根本不具有可比性!
是的是的,Angular 是框架,React 是类库。所以有人觉得比较这两者没有逻辑性可言。大错特错!
选择 Angular 还是 React 就像选择直接购买成品电脑还是买零件自己组装一样。
两者的优缺点本文都会提及,我会拿 React 语法和组件模型跟 Angular 的语法和组件模型做对比。这就像是拿成品电脑的 CPU 跟零售的 CPU 做对比,没有任何不妥。
Angular 2 的优点
- 无选择性疲劳
- TypeScript = 阳关大道
- 极少的代码变动
- 广泛的工具支持
- Web Components 友好
React 的优点
- JSX
- React 报错清晰快速
- React 以 JavaScript 为中心的设计 = 简约
- 奢华的开发体验
- 担心框架的大小?
- React 信奉Unix 哲学
谢幕之战
Angular 2 相比第一代有着长足的进步。新的组件模型比第一代的指令(directives)容易掌握许多;新增了对于同构/服务器端渲染的支持;使用虚拟 DOM 提供了 3-10 倍的性能提升。这些改进使得 Angular 2 与 React 旗鼓相当。不可否认,它功能齐全、观点鲜明,能够显著减少 “JavaScript 疲劳” 。
不过,Angular 2 的大小和语法都让我望而却步。Angular 致力的 HTML 中心设计比 React 的 JavaScript 中心模型要复杂太多。在 React 中,你并不需要学习 ng-什么什么 这种框架特有的 HTML 补丁(shim),你只要写 JavaScript 就好了。这才是我相信的未来。