chechengpeng

Vue.js 会成为像 Angular 和 React 那样的巨头吗? - 10Clouds

原文链接: 10clouds.com

在越来越多的文章标题中,Vue.js 经常拿来与 Angular 和 React 做比较,正在像暴风雨一样席卷整个世界。在刚刚过去的三个月中,Vue.js 的核心代码库在 GitHub 的 star 数增长了 20%多,同期 Angular 和 React 分别增长了 14% 和 10% 。Vue.js 背后有何魔法,让他赢得了开发者的关注?我们来看看吧!

Vue.js 是我第一个学习的前端框架并且喜欢上了它,我一直问自己一个问题,它是否会像前面提到的: Angular 和 React 一样的流行。我的统计研究显示了一些有趣的结果:

vue-cli 下载统计

Will Vue.js Become a Giant Like Angular or React?

vuex 库下载统计

Will Vue.js Become a Giant Like Angular or React?

vue-router 包下载统计

Will Vue.js Become a Giant Like Angular or React?

create-react-app 包下载统计

Will Vue.js Become a Giant Like Angular or React?

Vue.js 不仅仅是另一个前端框架。它非常的成熟和基于精心设计的组件 用于构建用户界面的渐进式框架。此外,它非常的简单并且容易理解,跟它的‘对手’相比,这是个巨大的优势。然后,我也读到过有偏见的开发者对它的评论(他们这么说:其一, 其二),他们认为如果它太简单,那么它可能不适合大一点的项目。但这是真的吗?让我们分解一些关键概念并且尝试预测未来。

Vue.js 为何如此流行?

Vue 提供了一些吸引开发者的特性:

  • 快. Vue.js 核心团队构建了一个示例项目,把有 10000 个项目的列表渲染了 100 次。平均来看,Vue.js 的渲染速度比 React 快将近两倍 (51ms vs. 94ms)。

  • 响应式. 就像 React 中最棒的特性,Vue.js 提供了一个虚拟 DOM 来检测变化并且只渲染需要重新渲染的部分。

  • 文档友好. 如果你正在寻找一个即满足初学者又满足有经验的开发者的详细指南,那么这就是你的菜。

  • 灵活且提供了可扩展的类库 有许多为 Vue 开发的第三方类库,并且这个数字一直在增长。它们当中最重要的无疑是用作状态管理的 Vuex 和用于路由的 vue-router,它们俩都有详细的文档。正如你看到的,这是 Vue 和 React 相似的另外一个特性。Bootstrap 4 有自己的 Vue 库,也有一些 Material 设计的组件和其他一些有趣的东西。

  • 它使用 DevTools. 这对程序调试和了解内部执行来说是非常必要的。Chrome 的 Vue.js 开发工具是一款界面和体验都很优秀的调试工具。

Will Vue.js Become a Giant Like Angular or React?

  • 它使用 ES6 特性,Webpack 和一个可靠的命令行项目初始化工具. 幸亏有一个好用的命令行工具,你能使用一些的关键词来生成项目并且使用 Webpack 作为打包工具。

  • 它依赖组件为基础的方式. Vue 允许以多种方式定义组件。最有趣的并且我认为对大型项目最好一种方式是单文件组件。定义一个类 HTML 模板,一个逻辑脚本和一段样式在一个单一的文件中(允许使用 Sass 和简单的样式封装)。对有 Angular 和 React 开发经验的人来说,需要注意的是在经过一些调整之后 Vue 也兼容 TypeScript 和 JSX。

  • 支持热重载. 干净利落,使编程变得快速和愉快。我认为如今这是标配。按下 CMD + R 或者其他的在很久以前就已经不再流行了。

  • 课程和教程. 你可以在 Udemy 上找到一些好的 Vue.js 课程,将会引领你学会框架的每个方面,包括关键的类库就像 vuex 和 vue-router。比如,Medium 上文章也提供了一些很棒的例子来指导一步一步的构建 web 应用。

也有一些更复杂的特性,像依赖注入,服务端渲染或单元测试,但上面提到的那些应该能让你深入了解 Vue.js 受欢迎的原因。

谁在使用 Vue.js?

所以你可能想问,是否真的有公司在使用 Vue.js。举几个例子:Facebook,Xiaomi, Alibaba (在一些登录页面), WizzAir, EuroNews, Grammarly, Gitlab 和 Laracasts。这可能不是很惊人,但我敢打赌,你知道这些品牌。

等等,刚刚我提到了 Facebook?观察 Facebook’s newsfeed。完全使用 Vue 。是的,我也很惊讶!

Vue.js 适用于大型项目吗?

就像我刚才提到的,一些人不相信 Vue 因为他们看到它是如此简单甚至都懒得去尝试。有趣的是他们承认这一点,这使得我的论点不证自得。目前为止在工作当中,我只用 Vue 做过中小型的项目,但也有很多大型的项目除了上面提到的那些。

一个用户描述了使用 200 个组件,50 个 mixin 和 40 个 vuex store 模块的项目。在添加新功能的时候他没有遇到任何问题,包括架构和组织方面。

事实上,框架越大不自动意味着它就越适合大型项目。Vue.js 有着极强的扩展能力。

Vue.js 是万能的吗?

到目前为止,这篇文章看起来只是在夸赞 Vue.js 。其实,在一些方面 Vue 表现的不是很好,开发者在项目中选择它之前,需要意识到这些:

  • 社区规模. 目前为止,Vue 的相关资源和第三方类库相比于 Angular 和 React 来说还是较少。它们也都在持续增长,而且你在 Stack OverFlow 或者其他网站上提的问题可能不如那些较大框架得到的回答快。

  • 相比于 Angular 太过开放. 使用 Vue 编程有很大的自由度,就像 React。Vue 允许你选择正确的方式做事,这可能会使你感到混乱或选择疲劳,导致性能下降。你不得不决定你要选择哪种方法。

  • 迁移到一个新框架. 这个领域的专家不多并且一开始在新项目中使用 Vue 可能性价比不高。就像第一个吃螃蟹的人。记住,在跟 Angular,React 和其他框架相比,Vue 的关键假设就是它的简单易用。这使得迁移很容易。

Vue.js 的相关职位

这是 Vue 真正的劣势,跟它的竞争者相比,甚至难以望其项背。在 LinkedIn 和 Indeed 上搜索职位,我注意到在许多国家的前端就业市场上 Angular 和 React 的需求率达到了80%以上,仍然是绝对的统治者。

如果只比较 Vue,Angular 和 React,那么在大部分情况下后面这两个占据了 超过97%的就业市场。这说明,很难得到确切的统计数据因为只搜索“Vue.js”可能会低估搜索结果。很不幸在个别国家的岗位职责描述上‘vue’是一个真实的词,这使得检索更加困难。

大多数开发者被推荐首先学习 React 或者 Angular,然后再鼓励学习 Vue.js 作为辅助。主要的原因是,就业市场需求低和缺少大量的公司迁移到 Vue。另一方面,可能是市场上还没有发现 Vue.js 的潜力,但没有万能的技术,对吧?

结语

好吧,让我们回到那些 GitHub stars。这应该有原因的,是吧?我个人的意见是 Vue.js 如此有趣而且容易上手使得人们点击 star 来表达对这个项目的支持。也有许多开发者正在使用 Angular 或 React,但是在 GitHub 上 star 它们的并不是很多。是否他们只是使用它,并不像 Vue.js 开发者那么自在?我想,这你应该去问他们。

目前市场上是双寡头垄断,并且没有人质疑。我质疑,并且 Vue 终究会成为 Angular 和 React 的下一个伙伴,因此建议你尝试了解一下它的新特性和可能导致的潜在问题。牢记,最终在项目中你应该总是选择使用正确的工具。

就像他们在体育馆说的:‘人生苦短’。你无论如何都要努力工作。这应该是 Vue.js 核心团队和其贡献者的口头禅。

Useful Links