最近和一些朋友谈到JS目前三大主流框架,到底该用啥.
小学生才会做选择题,大人当然是全都选.
作为前端汪,归根结底,JS才是基础,才是重中之重.JS牛逼了,啥框架都是手到擒来.
有朋友说了,我没时间啊,前端东西太多,框架也多,我还得回家陪老婆孩子,所以我只有精力注重去学一个. 也有朋友说,我比较懒,下班了玩玩游戏,出门浪一浪,也没太多时间啥都弄.只学一个也不知道哪个最好.
鄙人愚见, 基于各方面考虑,如果条件允许,vue要会用,react要深入,angular随缘.非要选一个,个人认为选择react最好.
为什么会选择react,基于编程的编程范式(编程思路和规范),历史背景,对移动端的支持,全家桶和组件的关系
下面我们来分析一下.
第一,思路规范
⑴ angular,
angular无处不在的作用域,无论你是注入,依赖, 挂载.都需要考虑作用域.基于这里,我个人就不太喜欢这种编程方式.
优点:
官方提供的模板足够丰富,基本上可以囊括所有开发中用到场景,自带了极其丰富的angular指令。
自定义指令,自定义指令后可以在项目中多次使用。
模块化比较大胆的引入了Java的一些东西(依赖注入),能够很容易的写出可复用的代码
背靠谷歌.后台强大.
基于typescript,编程相对严谨
生态很大
缺点:
上手较难,无论什么时候都要考虑作用域,对于JS基本功不扎实的coder不是很友好
其次,除了会JS,还得去学TS.从以前的angularJs升级成angular之后.所有代码都是用TS来完成.当时的版本升级,
导致了流失了很多的用户.升级不够顺滑(顺滑可以理解为,我以前学的,还能继续用,升级的也可以用,不强制用户去做改变).
再次,只要是模板,相对react,多了解析这一步,解析就会耗费时间.
最后,相对于移动端(这里泛指APP),angular没有支持做APP的框架.谷歌为此专门出了一个框架,flutter.但是flutter和angular的语法又没什么关系,相当于多学了一门语言.
也有组件,但是还是指令当家
⑵ vue,
对初学者最友好的一个框架, 只要你会写HTML.CSS.JS.你就会用vue写页面
优点:
简单易用,.vue文件包含了HTML js CSS 熟悉的配方,熟悉的味道.只要你会写HTML.CSS.JS,你就能很快上手
模板开发
官方支持,vue有官方支持,也有生态
不需要太多ES6以后的语法.但是ES6语法可以使代码更简洁
数据双向绑定
缺点:
社区不大,生态也很大,但是不如angular和react.
很缺乏高阶教程与文档
APP开发,weex现在还是有很多坑,国内的大厂也只有阿里再用.而且从vue到weex不够顺滑
模板开发,多解析这一步
vue 也支持组件化,不过是在 MVVM 上的扩展
⑶ react,
react, 万物皆组件,把所有的组件拼合起来,就是一个页面,
优点:
生态够大,社区也很大.
JSX语法,没有解析这一步
没有指令,都是基于组件.优点类似乐高积木,需要自己去一个一个找来搭建
类似写法(class),包括刚出的hook(function写法)
组件复用性强于vue和angular
react-native生成的原生应用比较友好. 虽然也有一些坑,
但是react的生态圈够大,这个组件不行就换个组件.基本上都能解决
版本升级顺滑,之前引入的fiber特性.和最近新增的hooks.都是很强大的东西.
而且不是强制用,你一样还可以用class写法.升级版本不影响以前的项目
组件化,做的彻底而清晰
缺点:
上手难度相对较大.官方就一个基础教程,全家桶较多
比较迟ES6的语法.
react的深入比较吃基础.对于时间不多的人来说,够用就行吧
其实自己也感觉分析得不完整,各有各的优点.如果想学一个框架,一招鲜吃遍天下的话,我推荐用react,各方面都很顺滑.
说说个人对未来的趋势吧,当前组件化的概念已经很火热,类似写法也大行其道.感觉未来还是会流行typeScript.因为现在JS已经在慢慢的趋近于严谨的写法.