React vs Angular vs Vue.js:到底该选谁?
我们在 2018 年曾发布了一篇比较 React 和 Angular 的文章。那么,2019年的前端生态是怎样的呢?JavaScript 框架正在以飞快的速度发展,这意味着今天我们有快速迭代的 Angular、React 和市场上的新玩家 Vue.js。
我们分析了全世界要求特定框架知识的开发职位,以 Indeed.com 作为数据来源,根据 60,000 多个职位得到了如下分布。
根据这些数据,我们决定分享每个前端框架的优缺点,帮助科技人员或工程师选择最适合他们开发需求的前端框架。
Angular 是超火的 JavaScript MVVM 框架,创建于 2009 年,在构建具有较强互动性的 Web 应用程序时表现出色。
Angular 的优点:
Angular 必须使用 TypeScript,而且对于 TypeScript 还有额外支持。 Angular - 语言 - 服务,这使得组件外部的 HTML 模板文件可以智能化和自动补全。 新功能,例如基于 CLI 的 npm 库生成 Angular 代码,以及基于 Angular 开发 WebComponents。 详细的文档,使得个人开发者可以获得所有必需的信息而无需询问其同事。然而,这需要更多的学习时间。 单向数据绑定,使应用程序能够实现单一行为,从而最小化可能错误的风险。 MVVM(Model-View-ViewModel)允许开发者使用同一组数据处理同一个应用程序块。 与模块中的组件和整体模块化有关的依赖注入特性。 特别针对大型项目创建的结构和架构。
Angular 的缺点:
各种不同的结构(例如Injectables、Components、Pipes、Modules 等)使得它与只有“Component(组件)”概念的 React 和 Vue.js 比起来更难学。 -
根据不同的基准,性能都相对更慢。而这很容易使用所谓的“ChangeDetectionStrategy”来解决。“ChangeDetectionStrategy”帮助手动控制组件的渲染进程。
使用 Angular 的公司有: Microsoft、Autodesk、MacDonald's、UPS、Cisco Solution Partner Program、AT&T、Apple、Adboe、GoPro、ProtonMail、Clarity Design Systemm、Upwork、Freelancer、Udemy、YouTube、PayPal、Nike、Google、Telegram、Weather、iStockphoto、AWS、Crunchbase。
React 是一个 JavaScript 库,在 2013 年由 Facebook 开源,在创建任何规模的现代单页应用时表现出色。
React 的优点:
由于它设计简洁,所以很容易学习。使用 JSX(一种类似 HTML 的语法)来做模板,具有非常详细的文档。 开发者花费更多时间编写现代 JavaScript,更少关注框架相关的代码。 非常快,React 的虚拟 DOM 实现和各种渲染优化。 强力支持服务端渲染,对专注内容的应用程序来说是一个强力的框架。 一流的渐进型 Web 应用程序(PWA)支持,多亏了 create-react-app
应用生成器。数据绑定是单向的,意味着不想要的副作用更少。 Redux——最流行的用来管理 React 应用程序状态的框架,容易学习和掌握。 React 实现了函数式编程(FP)的概念,创建易于测试和高度可复用的代码。 应用程序可以使用 Microsoft 的 TypeScript 或者 Facebook 的 Flow 实现类型安全,两者都原生支持 JSX。 版本之间的迁移通常很简单,Facebook 提供了“codemods”来自动化大部分迁移过程。 在 React 中学到的技术(通常直接)可以应用到 React Native 开发。
React 的缺点:
React 是没有主导意见的,开发者可以选择最佳的开发方式。这可以通过强大的项目领导力和良好的流程解决。 社区关于在 React 中写 CSS 的最佳方式存在分歧,分为传统样式表(CSS Modules)和 CSS-in-JS(例如 Emotion 和 Styled Components)。 React 正远离基于类的组件,这可能是更习惯面向对象编程(OOP)的开发者的一个障碍。 (JSX)将模板与逻辑混合,对于一些开发者来说一开始可能会感到困惑。
使用 React 的公司有: Facebook、Instagram、Netflix、New York Times、Yahoo、Khan Academy、WhatsApp、Codecademy、Dropbox、Airbnb、Asana、Atlassian、Intercom、Microsoft、Slack、Stroybook 等等。
Vue.js 是一个 JavaScript 框架,发布于 2013 年,非常适合创建高适应性的用户界面和复杂的单页应用。
Vue.js 的优点:
强化了 HTML。这意味着 Vue.js 和 Angular 有许多相似的特性,而且这可以通过使用不同的组件帮助优化 HTML 块。 详细的文档。Vue.js 有非常接地气的文档,可以加快开发者的学习曲线并节省更多时间使用基本的 HTML 和 JavaScript 知识来开发应用程序。 适应性。由于它与 Angular 和 React 在设计和架构上的相似性,所以可以快速从其它框架切换到 Vue.js。 非常棒的集成。Vue.js 可以用于构建单页应用程序和应用程序中难度更高的 Web 界面。 最主要的是,更小的交互部件可以轻易集成到已有的基础设施中,而不会给整个系统带来负面效果。 大型扩展。Vue.js 可以帮助开发非常大型的可复用的模板,而且由于其简单的结构而无需分配额外的时间。 文件非常小。Vue.js 只有 20KB 大小就可以保持它的速度和灵活性,相对于其他框架来说可以达到更好的性能。
Vue.js 的缺点:
缺少资源。Vue.js 相对于 React 或 Angular 来说市场份额还比较小,这意味着这个框架的知识分享还处在初始阶段。 过度灵活性的风险。有时,Vue.js 迁移到超大型项目中会有一些问题,而且还没有可能的解决方案,但肯定马上会有解决方案。
使用 Vue.js 的公司有: Xiaomi、Alibaba、WizzAir、EuroNews、Grammarly、GitLab 和 Laracasts、Adobe、Behance、Codeship、Reuters。
作为一名真正的工程师,选择哪个框架并没有实质性的区别,因为只需要花费一些时间来习惯新框架就可以了。在我们公司,我们主要在 React 和 Angular 领域发展专业知识,但也正在了解 Vue.js。每个框架都有它的优点和缺点,意味着产品开发中的每一个案例都应该有正确的选择。
英文原文: https://medium.com/@TechMagic/reactjs-vs-angular5-vs-vue-js-what-to-choose-in-2018-b91e028fa91d
活动推荐 提效是企业级前端框架非常重要的目标之一,我们都希望借助框架和工具可以让一个人做十个人的事,而要做10倍的提效,则需要一些能破局的东西。 可视化辅助编程,就是破局点之一。企业可以尝试在 Pro Code 的基础上做可视化辅助编程(Visual Assist Programming),借助和框架、平台、组件和物料市场的互补,以及类微前端的架构方案来提供插件机制,以此来提升开发者的研发效率以及降低上手门槛。 这次 GMTC 全球大前端技术大会(深圳站)2019,我们专门请到了蚂蚁金服高级技术专家陈成做这次技术分享,希望可以从阿里可视化辅助编程的实操案例中深入了解这类架构方案,扫描下方二维码或点击阅读原文,查看详情。
- Vue.js vs React vs Angular 深度对比
- 前端框架大比拼:Angularjs vs Reactjs vs Vue.js
- Vue.js vs React vs Angular 深度对比
- Vue.js vs React vs Angular 深度对比
- 一张图对比React、Angular、Vue.js
- MVC、MVP、MVVM、Angular.js、Knockout.js、Backbone.js、React.js、Ember.js、Avalon.js、Vue.js 概念摘录
- Vue.js 很好,但会比 Angular 或 React 更好吗?
- Vue.js 很好,但会比 Angular 或 React 更好吗?
- Vue.js Is Good, but Is It Better Than Angular or React?
- 我从Angular 2转向Vue.js, 也没有选择React
- JavaScript 开发者:最喜欢 React,Vue.js 比 Angular 更值得尝试 | 2017 JS 调查报告
- MVC、MVP、MVVM、Angular.js、Knockout.js、Backbone.js、React.js、Ember.js、Avalon.js、Vue.js 概念摘录
- Angular、React、Vue.js 等 6 大主流 Web 框架都有什么优缺点?
- Angular、React、Vue.js 等 6 大主流前端框架都有什么优缺点?
- Vue.js,React.js和Angular.js三者的比较
- MVC、MVP、MVVM、Angular.js、Knockout.js、Backbone.js、React.js、Ember.js、Avalon.js、Vue.js 概念摘录
- JavaScript 开发者:最喜欢 React,Vue.js 比 Angular 更值得尝试
- Angular vs. React vs. Vue
- Angular、React、Vue.js 等 6 大主流 Web 框架都有什么优缺点?
- 浅析angular,react,vue.js jQuery使用区别