Angular, React, Vue三大前端框架大比拼。
前面有一期,我讲了Angular和react的区别,说Angular更有前途一些,结果有很多程序员发表了很多不同的声音,当然也有很多赞同的。其中有一些读者特别希望我也讲一下Vue,这一期,我就来谈一下这三个前端框架。
说实在的,因为前端开发框架变化比较快,所以你在选择前端开发框架的时候会有很多困难,这对每个人都是一样的。
我们目前比较流行的三大前端框架,一个是Angular来自Google,一个是React来自Facebook,另外一个是Vue,虽然没有大公司支持,但是也比较流行。
对于这三大框架来说,你不太可能一上来就把三个都学了,你要选择其中一个来做。一旦你掌握了一种框架,要想学另外一种框架的话,就会变得更容易。因为这些框架的一些技术细节虽然不同,但是框架的共同点非常多,尤其是在关键的部分都是相通的。
简单地说,他们共同的一些理念就是:
单页应用程序理念,
组件管理,
数据是怎么流动的?
数据的状态是怎么处理的?
数据是怎么绑定的?
跟后端API是如何交互的?
如何做路径处理?
编程语言(HTML,CSS,Javascript, Typescript)。
测试工具,单元测试,集成测试。
前端编译工具。
下面说一下这三个框架的不同点。
React是面向网页显示开发的。
React相对比较小。作为程序员来说入手比较快,因为把组件中所有的东西都作为一个文件来处理,对程序员来说更容易入手。
React起步比较早。比AngularJS要好用一些(说这个话, AngularJS的粉丝也会有意见的,哈哈)。所以取得了先发优势。赢得了大批社区的支持,所以你现在看到的很多统计数据,都是从那个时候开始得出的。
React经历了不同的版本变化,但是整体的设计变化并不大,所以它的技术架构是一脉相承的,原先的粉丝, 目前可继续成为粉丝。
因为React入手对技术的要求不是很高,所以初创公司首选React,这样培训程序员比较容,易找程序员的成本比较低。
React的核心是一个文件jsx。这个文件融合了html, css和JavaScript。这个对于传统的网页开发程序员来说,有一个学习调整的过程。
React的核心任务就是做前端的展示,所以很容易嵌入到已经存在的网页程序里面去。这个可以通过第三方插件来实现,有很多插件来做这部分部分工作。因为选择比较多,有时候眼花缭乱的,做出正确的选择比较艰难。
下面来说一下Angular。
Angular包含的东西要比react和Vue都要多, 因为它的设计不是单纯解决界面的显示问题,它是面向整体应用开发的解决方案。
因为它的靠山是Google, 所以有很好的技术支持,文档和开发团队。
值得一提的是Angular,曾经做过比较大的改动。
之前的Angular称之为Angular js。两者区别很大。Angular js的入手相对比较难,对程序员的要求也比较高,项目的维护成本相对来说也高。
Angular 2之后的版本,就要容易很多了。原因之一是精简了架构设计, 使得开发工作流程更简单直接,提供了typescript语言的支持。
之前的Angular js的粉丝不一定喜欢Angular 2之后的版本,所以他们一直还在用Angular js。
Angular 2的粉丝,估计也不会喜欢Angular JS。
总的来说Angular是面向整体应用开发的,所以它的工具比较全,装了一个Angular以后几乎可以涵盖所有你需要的东西了。
它的主要编程语言是Typescript,所以如果你特别讨厌JavaScript的话,Angular是目前最好的选择。
Angular最大的一个优势就是把html, css, typescript分开。
关于学习的难度,也许我对Angular已经很熟了,之前我没有感觉到学习Angular有什么大的障碍。
下面来说一下Vue。
在Vue出来之前,React算是比较容易学的,等Vue出来之后,Vue变成了最容易学的。
Vue提供的东西比React本身还要多, 所以安装了Vue的架构以后,你不需要像React那样找第三方的插件。Vue本身的组件,基本上能满足你日常的开发需求了。
初学者,学习Vue是一个不错的选择。
Vue另外一个很大的优势就是它的文档写得很清楚。
Vue里面,你可以把HTML,CSS,Javascript代码分开, 据说新的Vue会支持Typescript, 这一点就具有了Angular的部分优势。
相比React和Angela, Vue的一个劣势就是相对来说比较新,并且它没有大公司的支持。
具体来说你要选哪一个,要根据你当地工作环境来决定,尤其是工作的需求量来决定。这个可以跟当地的猎头聊一聊这三大框架在本地的工作市场中哪一个最受欢迎。了解了这些信息,那你就可以花大力气去学那一个框架。
还有,多去参加一些开发者的论坛,多听一听其他程序员的声音,有的程序员可能都没用过,,他会选择说一些道听途说的观点, 有一些程序员,用过其中之一,他会跟你说一些不一样的东西,有的程序员三个都用过,他又会给你说一些不同东西,多听一听,然后你就可以大体做出你自己的判断了。
还有一个选择的参考就是你的团队的程序员具备什么样的能力。
都是初学者的话,你可能是一种选择,都是老程序员的话或是另外一种选择;
你的公司是初创公司的话是一种选择,如果你的公司是中大型公司,那就是另外一种选择。
总的来说React和Vue, 它们的工作重点在界面设计显示这一部分。
Angular的工作重点在整个应用设计开发这一部分。
因为这个特点,Angular更大更全,感觉上更复杂一些,学起来好像更难一些。
然而对于React和Vue来说, 随着工作量的增加,不断的添加组件,尤其是第三方插件,你的应用也会变得越来越复杂,如果没有很好的控制的话,很容易失控。
三大框架的编程工具可以共用,这是个好消息,比如说你可以选择Visual Studio Code,Atom等等, 然后在这些代码编辑器里面, 你要装上一些好用插件帮助你优化代码,提高编程效率等等。
性能方面,这三个的区别并不大。
最后到底选哪一个?
我相信你读了上面这些内容以后,你会意识到,最后做出选择的话,肯定会有一部分主观的因素。
还有,你今年可能选了这个框架,到明年你可能会改变你的主意的, 想试试另外的框架。
我个人从最开始用reactjs,到后来用angular js,再到后来的用Angular,到目前我一直用Angular。
如果你觉得实在难选择的话,不要在这上面花太多时间,你就任选一种,比如抓阄,选任何一种都可以成功的。
相比选择哪种框架,学习哪种框架,更重要的是前端开发下面的这些共用的概念:
单页应用
组件
数据流
状态管理
模板化
数据绑定
后端API调用
路径处理
测试
编译等等。
好了,这期就先说这些,这里是丁哥开讲,欢迎关注防止失联。