[](()热度大比拼
====================================================================
我们先看看这三个框架在Google Trends的表现,因为在Google Trends上并没有Vue主题,所以为了公平起见我选择了计算机类型,并以搜索词作为比较对象,虽然这样比较也并不十分准确,但也足以说明我们想要的答案。
React和Angular热度差不多,奇怪的是在2018/12/23~2018/12/29这个时间段React和Angular热度都有很大的下降,Vue虽然也稍有下降,但是不算很多,这里我猜测是歪果仁们都去过圣诞节了,谁还有心思写代码啊。圣诞节对中国人来说不是主要节日,但程序猿们也可能会追一下潮流,所以也稍有下降。什么?为什么Vue跟中国有关系?因为Vue是中国人发明的,它的主要市场在中国。在这个热度比较中对Vue有很多不公平,因为很多国人可能会通过百度等国内搜索引擎,但这里我们不深究,因为即时如此React和Angular可以说是国际流行,Vue与这两个框架在市场份额上还是有所差距。
在GitHub上,Vue的关注度很高,其热度和稳定性一点不输给Angular和Vue,Angular的Issues很高,这说明Angular的稳定性还不足。通过这个图表,我们可以看出Angular和Vue的热度在持续增加,React因为发布较早已区域稳定,但结合Google Trends图我们可以看出,React已是成熟稳定的JavaScript包库,它的市场占有率和使用率还是很大的。
[](()React
====================================================================
React是由Facebook公司推出的前端包库。提供了响应式和组件化的视图组件,并且拥有强大的路由系统,在React中淡化了HTML和CSS的模版应用,它通过JSX语法糖可以方便快捷的建立网页节点。React Native让React具有多平台的能力。React最大的优点就是通过虚拟DOM实现高性能,并且具有繁荣的生态社区。
由于React淡化了HTML模版概念,这使得大多数前端开发者在开始学习React时不习惯,HTML可以给开发者更为直观的开发感受。React使用CSS-In-JS实现CSS引入,这需要额外的运行时程序开销。React依赖繁荣的社区来丰富自身的能力,这也使得功能维护更分散。React的类库虽然尽可能的与React共享API和生态,但它们也有自己的小生态。因此很多时候类库并不是所有功能都完全兼容React。
React的主要用户有Facebook、Uber、Netflix、Twitter、Udemy、Paypal、Reddit、Tumblr、Walmart。
[](()Angular
======================================================================
Angular现在由Google团队维护的一个JS框架,它是在AngularJS 1.X之后重新开发的全新框架,因此Angular不具有兼容AngularJS的能力。Angular是基于TypeScript开发的JavaScript MVVM框架,这里我也见到有网友认为它是MVC框架,我个人更偏向于MVVM。它具有很强的HTML和CSS亲和性,这让很多传统开发者可以更快上手。它具有自己的DSL语言,可方便的在HTML中实现逻辑判断、for循环等功能。Angular以模型、组件、模版、服务等等类似于Java和C++面向对象的概念,这也让后端开发者可以更容易的学习。
Angular由于其设计引入很多架构概念,导致其复杂度很高,提升了学习曲线的陡峭程度。Angular具有很强的规则性,也就是说无论开发者开发大项目还是小项目都必须按照其规则进行开发,这导致其向下扩展性不足。Angular的项目体积相对于React和Vue都会比较大,虽然并不一定对性能产生很大的影响,但是降低了它与React和Vue的竞争力。
Angular的主要用户有Google、Forbes、WhatsApp、Instagram、healthcare.gov。
[](()Vue