前端诸神大战,VueReact依旧笑傲

知名白癜风专家 http://news.39.net/bjzkhbzy/180502/6205102.html

如今的前端框架市场基本由React、Angular和Vue.js占据。三种框架都有自己独到的优势,也有各自的缺陷。那么,项目搭建框架时该如何选择才能得到更适合的效果呢?且看本文分析。

整理

弯月责编

张文

头图

CSDN下载自视觉中国

自年AngularJS第一版发布以来,前端框架的发展经历了十个年头,前端框架大战也几乎告一段落。毫无疑问,现在基本上是React、Angular(包括AngularJS和后来的Angular)和Vue.js三分天下。

那么年了,在面临新项目时,开发人员该如何选择呢?本文将从如下几个方面比较三个框架,希望能助你一臂之力。

基本比较

基本信息:

各个框架的优缺点

React由Facebook开发,第一版发布于年。Facebook在自己的产品中大量使用了React(如Facebook、Instagram、WhatsApp等)。目前稳定版本为16.x,发布于年11月。框架默认语言为JavaScript,但也支持TypeScript。

React的优势:

易学易用;使用JSX模板;文档完备;速度非常快,得益于虚拟DOM和各种渲染优化措施;对服务器端渲染支持非常好;支持PWA;单向数据绑定;可采用Redux作为状态管理;支持函数式思想;易升级版本;React技能可以直接转移至ReactNative。React的缺点:

React只负责UI,其他框架需要开发者自行搭配(很难定义这是好是坏,许多开发者并不喜欢Angular这种大而全的框架);

CSS管理方面依赖第三方(如CSSModules或CSS-in-JS),容易导致混乱;

React正在逐步放弃OOP方式,这对传统开发者会导致一些学习障碍。Angular由Google开发,首次发布于年,是三个框架中最为年长者。最初版本(1.x)称为AngularJS,采用JavaScript,但在1.5.x之后进行了一次大规模重构,架构几乎重新设计,后来版本改名为Angular2,一直延续至年6月发布的Angular10。Angular默认语言采用TypeScript。

Angular的优势:

Angular本身构建在TypeScript上,因此对TypeScript的支持非常好;AngularLanguageService支持在外部HTML模板文件中使用自动完成;Angular通过命令行程序提供新功能,如代码生成等;文档非常完备;单向数据绑定,可将意外错误减少到最低;MVVM模型可让开发者使用同一套数据开发不同UI组件;依赖注入保证模块的独立性;代码结构和架构可扩展性强,适合大型项目;“大而全”,Angular框架包含了前端开发需要的方方面面。(关于这点的好坏判定,见仁见智)Angular的缺点:

众多不同结构(可注入组件、组件、管道、模块等)增加了学习难度,而React和Vue只有“组件”的概念;性能较差。Vue是最年轻的框架,由前Google员工尤雨溪开发。尽管Vue是唯一没有任何大公司支持的框架,但过去几年内,Vue的流行度还是大幅增加。目前稳定版本为年2月发布的2.6版。默认语言采用JavaScript,正在开发中的Vue3计划支持TypeScript。

Vue的优势:

增强HTML,在这方面Vue与Angular很相似;文档完备;适应性强。由于语法与Angular和React很相似,所以从其他框架迁移至Vue相对容易;可扩展性强。Vue可用于开发大型应用程序;尺寸小。Vue只有80K左右,比其他框架小得多。Vue的缺点:

资源缺乏。Vue的市场依然比较小,所以资源也较少;过于灵活,在缺乏经验的开发者手中可能会造成一些风险。

授权

选择开源框架时,授权是一个需要认真考虑的方面。不过,幸好三个框架都采用了宽松的MIT授权,所以在这方面不需要有太多顾虑。

React曾采用BSD+专利授权的方式,但在年,这个授权受到了许多开发者的质疑,因为该授权意味着Facebook理论上可以对任何使用React的公司提出专利诉讼。虽然Facebook自称这是一款“防御性”协议,但由于该风险的存在,许多大公司纷纷表示将从自家代码中剔除React。后来Facebook迫于压力终于将授权改成了MIT,这才平息了风波。

流行度

下图是三个框架GitHub代码库标星数量的变化情况。从图中可以看出,React的


转载请注明:http://www.aierlanlan.com/tzrz/4049.html