都 9012 了,该选择 Angular、React,还是 Vue?

2019-04-18 15:23:37 +08:00
 powertoolsteam

转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。


尽管 Web 开发的典型应用场景除了将服务器用作平台、浏览器用作客户端之外,几乎很少活跃于其他业务领域,但不可否认 JavaScript 语言和框架的使用已经成为了主流。Angular、React 和 Vue,作为 JavaScript 的三大框架已逐步发展成熟,三者的差异性也越发明显,假设 JavaScript 还会继续流行十年左右,未来十年,你将会作何选择?

Angular

AngularJS 自 2009 年诞生,至今已有十年历史。在这短短十年中,其对 Web 社区的发展产生了十分深远的影响。作为一款优秀的 JavaScript 框架,在其推出一年后,便在全球引起了广泛关注,如今更是在 Google 的 600 多款产品中得以成功运用,如 Firebase 控制台、谷歌分析、谷歌快车、谷歌云等。

AngularJS 有着诸多核心特性,包含:MVC ( Model – view – controller )、模块化、自动化双向数据绑定、语义化标签、依赖注入等。Angular 最新版 7.0.0 已于 2018 年 10 月发布,下一版本预计将于今年第二季度正式上线。以下是 Angular 7 针对性能、命令行工具和 Material Design 组件的优化项:

React

Angular 的出现,在 Web 社区引发了强烈轰动。两年后,Facebook 也推出了一款同样具备丰富功能的 JavaScript UI 组件库—— React。

使用 React,意味着您将用一种更简约的方式开始前端开发,这也是大部分开发人员所期待的:

不多,却正好够用,您完全可以根据自己的需要,自由添加任何组件库,它们包括:

组件功能:React VS Angular

Angular 提供了比 React 更多开箱即用的功能,如:

当然,Google 工程师已经意识到了这个问题,也在一定程度上致力于简化 Angular 框架的复杂性,希望在 Angular 8 中能让人耳目一新。

Vue

在 React 与 Angular 孰优孰劣的讨论逐步升温的时候,另一个 JavaScript 框架 Vue 抵达了现场,使得这场最优 Web 开发框架的角逐变得更加白热化。

Vue.js 是由 Google 的核心开发工程师——尤雨溪( Evan You )所创建的框架,作为一个比 React 和 Angular 都更年轻的框架,Vue 从它们那里借鉴了好的部分,即函数式和面向对象编程的混合体。2014 年 2 月(在微软收购 GitHub 平台四年之前),Evan You 在 GitHub 上发布了第一个稳定版本的 Vue,标志着一个构建数据驱动的 Web UI 的渐进式框架就此诞生。

尽管没有得到谷歌和 Facebook 等科技巨头的支持,但自 2018 年以来,Vue 一直受到开发者的广泛关注。从去年几大主流前端开发框架的热度来看,大多数知晓 Vue 的开发者都表示有兴趣学习它。

也许,那些已经熟练掌握 Angular 和 React 前端框架的开发人员也应该花些时间去了解一下这个简单、小巧、省心的前端框架,希望下面的内容能对你有所帮助。

学习曲线:React VS Vue

如果前端框架的学习不包含 TypeScript (即便 TypeScript 通常被认为是 JavaScript 的增集,但要完全掌握仍需要学习额外的类处理过程),那么 React 和 Vue 的学习速率都高于 Angular。

相对于 React,许多初学者认为 Vue 的学习成本更低,因为它提供了更加丰富的资源文档和中文支持。事实上,Vue 和 React 学习速率的实际情况是大致相同的,由于大部分 Vue 的学习资料直接以单个 Web 应用程序的开发实践开始,直观且清晰的代码逻辑的确可以帮助初学者更快入门,但是,随着学习内容的深入,当您需要开发复杂的 Web 应用程序时,花哨灵活的指令和逻辑反而会让人觉得 Vue 比 React 更难掌控。

技术社区:React VS Vue

React 是一个已经存在近十年的 Facebook 开源项目,因此它拥有更加成熟的技术社区支持。尽管 Vue 已经成功地在短短几年间吸引了相当多的追随者,但在它真正建立出一整套完善且丰富的生态系统之前,仍需要更多人和时间的打磨。

当你看到许多使用 Vue 完成的项目时,你会注意到,其整体的设计理念更趋向现代化,这是因为 Vue 仍是一个相对较新的框架,比如,这个示例。 众多周知,React 所包含的工具、组件库和代码包的数量更多,但 Vue 灵巧、精致和简单却更加令人印象深刻

安全性:React VS Vue

前端几乎无安全可言!当然,这里所指的安全性,仅仅是 React 和 Vue 这两个框架之间的对比,相对于 React,Vue 更为小众且不同,因此在面对大规模黑客攻击的时候,React 更容易成为目标。

Vue 和 React 同样都容易受到跨站点脚本( XSS )攻击,这也是 Web 应用程序中最为常见的安全漏洞。XSS 攻击允许攻击者将客户端脚本注入到其他用户查看的网页中,以影响其关联的任何 JavaScript Web 应用程序。 PS:缓解此问题的最佳方法是将数据保存在脚本之外,加入黑名单机制并从白名单中进行数据验证。

灵活性:React VS Vue

这也是争议最大的地方。React 专注于 UI,所以在构建 UI 组件时可以从它那里获得很好的支持。Vue 作为一个渐进式框架,只允许使用最基本的功能来构建应用程序,但同时也提供了一些开箱即用的东西:如,用于状态管理的 Vuex、用于应用程序 URL 管理的 Vue Router、Vue 服务器端渲染。

Vue 剥离了许多元素,相比之下 React 更加全面。但如果您正在寻找一种精简、新颖、简单易学、样板代码少、高性能、灵活且完整的前端框架,Vue 更加适合;当然,如果您打算使用低版本 jQuery 代码,Vue 也同样支持。

React 的灵活性则更多依赖于其背后强大的技术社区,在 Facebook 的强力支撑下( Facebook 的 React 团队包括了 10 名专职开发人员),提供了更多工具、UI 库和教程。

如果您的开发理念更趋向全栈文化、跨平台、保持独特、引领潮流而不是跟随,那么您一定会喜欢 Vue ;但如果您的项目需要大量熟练使用该框架的前端开发者、大量的工具及第三方库,那么您最好使用 React。不过小孩子才做选择,您最需要的应该是一个全面兼容 Angular、React 和 Vue 的前端开发工具包—— WijmoJS

Vue 的未来

截至 2019 年初,Angular、React 和 Vue 之间的竞争持续升温,越来越多的开发人员开始抛弃 Google 项目,就商业开发工具的提供者而言,Vue 的未来一片光明。

为开发速度更快的 Web 应用程序而选择了 Vue 的人有明显的增长,Vue 很有趣,开发起来也很简单。虽然,React 依托于其庞大的生态圈,在目前为止,处理更复杂的 Web 项目时占据优势,但随着前端社区内大量 Vue 追随者的出现、Vue 社区稳定增长的良好氛围,都在暗示着 Vue 很快就会变得像 React 一样受欢迎。

Angular、React,还是 Vue ?

作者尽量保持着公正的态度,客观地分析了上述三个前端框架,而作为前端开发者,面对 Angular、React 和 Vue,你会作何选择?为什么?如果您有任何问题或意见,欢迎在文末回复讨论。

16041 次点击
所在节点    推广
76 条回复
xjr7670
2019-04-18 16:16:30 +08:00
我就想问,作为一个业余的前端开发者,该学哪个
jacketma
2019-04-18 16:19:22 +08:00
支持 vue 吧,难得一个国人高 stars 项目
wozhizui
2019-04-18 16:25:37 +08:00
难道不是全都用点吗
famensaodiseng
2019-04-18 16:29:15 +08:00
不要给我说什么 jquery,vue,angular,老夫 jquery 一梭子。
samleong019
2019-04-18 16:29:25 +08:00
@xjr7670 学 react, 学会 react 上手 vue 分分钟的事, angular 在国内不好找工作...
AngryMagikarp
2019-04-18 16:37:54 +08:00
vue 已经不小众了,至少在国内人们都跟风去用 vue 了。
strpbrk
2019-04-18 16:46:43 +08:00
react
slimyy
2019-04-18 16:47:42 +08:00
jquery 一梭子
pkoukk
2019-04-18 16:49:58 +08:00
对于我这种上了年纪的后端,问就是 jquery 一梭子
GTim
2019-04-18 16:52:13 +08:00
公司项目请用 VUE,好招人
个人研究请用 React

热血沸腾请用 Angular
leonidas
2019-04-18 16:53:57 +08:00
jquery 是被抛弃了吗
atom234
2019-04-18 16:55:17 +08:00
只会 jquery
buhi
2019-04-18 16:57:32 +08:00
要保证项目质量的话用 react+typescript
不用 typescript 的话 稍微大一点的项目都很容易写成一坨浆糊
rrfeng
2019-04-18 17:16:04 +08:00
作为一个只会用 Angular 的运维来说我是不是太奇葩了?

而且明明 Angular 好用啊!
CallMeReznov
2019-04-18 17:26:35 +08:00
@rrfeng #14 同为运维.
我学了 python 作为补充,现在犹豫要不要在学一门前端语言.
angular 和 vue 都简单看了一下感觉没什么学下去的动力
在运维工作中前端语言有什么用处呢?
Mexion
2019-04-18 17:36:29 +08:00
React 和 Vue 个人用起来比较喜欢 Vue,Angular 没用过
zhuangzhuang1988
2019-04-18 17:37:31 +08:00
jquery 一把梭
rrfeng
2019-04-18 17:43:38 +08:00
@CallMeReznov
总有用处,比如可以硬怼前端的 bug 😃(误

写界面啊,总有那一天的。脚本只是初级
sanqian
2019-04-18 17:50:37 +08:00
jquery 一把梭
lzj307077687
2019-04-18 17:52:07 +08:00
jquery 一把梭

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/556428

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX