做程序开发的同学经常听到vue、react这些框架,可能有人知道这些是什么,也可能有人还不知道这些是什么东西,vue是由尤雨溪创建的JavaScript框架,而react是由Facebook推出的JavaScript框架,Vue和React在前端生态中具有广泛的应用,今天给大家简单介绍一下尤雨溪与Vue的故事。

以下部分内容来自尤雨溪的知乎回答:https://www.zhihu.com/people/evanyou,感谢尤雨溪对vue做出的贡献。

1、尤雨溪与Vue

高中时期:尤雨溪出生于1987年,高中就读于复旦附中,高中毕业时申请留学,但由于只有托福成绩没有SAT成绩申请纷纷被拒。在美国本科的交流平台CUUS论坛上,尤雨溪了解到美国文理学院(Liberal Arts College)以本科教育为主,规模小而精,顶尖文理学院的学术声誉完全不输常春藤名校。在三月第二次申请后,尤雨溪很快拿到了两三个录取通知书,都有全额奖学金,他选择了离纽约比较近的学校Colgate。

本科时期:2005年,18岁的尤雨溪来了美国。尤雨溪的本科四年过得比较憋屈。一开始他听从爸爸的话选了金融专业,但是尤雨溪很早就玩Flash动画制作,还做了一个作品集,他随意把一些作品发到网上的互动设计论坛里,结果被北京一家公司的创意总监看中,邀请他到北京实习。尤雨溪的作品和作品意识一直是他人生的杠杆,为他创造机会,放大效益。在Colgate大二快结束时,尤雨溪决定要做一名设计师,尤雨溪放弃金融坚定地选择了艺术专业(Studio Art),转了室内艺术和艺术史。遗憾的是Colgate严格说只有一个老师真懂数字艺术,尤雨溪需要自己摸索专业知识。当Flash可以用ActionScript语言写脚本时,尤雨溪开始做一些简单的互动,接着尝试实现复杂场景。学到ActionScript 3时,尤雨溪对编程就有了些概念。但凡基于实践需要,再难,尤雨溪都会主动去学。“好在并不是所有类型的编程都需要数学功底”,因为尤雨溪的数学学得不算好,对他感兴趣的方向来说,“编程更需要逻辑分析能力”,而他在Colgate逻辑课拿了A+。尤雨溪学编程出于视觉驱动,他看到别人做出了一个很酷的东西,就开始想,怎么写代码才能做出这种效果?当然也会尝试反向编译别人的源码。GitHub的出现让他十分开心,他天天在上面看别人的源码,看到源码,就能弄明白一个东西是怎么运作的。尤雨溪的编程一直是结果导向。尽管如愿以偿,开始数字艺术专业学习,但尤雨溪知道数字艺术专业找不到工作,他必须读硕士,将艺术插上技术的翅膀。

硕士时期:在本科毕业时尤雨溪凭借着自学,做了一个完全靠编程来实现的网站。在申请到的四、五个Offer中,尤雨溪选择了Parsons(帕森斯设计学院),因为他还是想留在纽约。Parsons的同学非常跨界,有的同学是工作了几年的设计师想学编程,有的是经验丰富的软件工程师想搞艺术,他们来自不同的国家和地区。纽约是个大熔炉。硕士阶段没有奖学金,“花了家里不少钱”,所以尤雨溪很拼命,努力学到了很多东西。“这么多花销,如果再不努力,最后再找不到工作,就太说不过去了。”在此期间,尤雨溪不仅学习了openFrameworks、动画算法等技术,还接触到了JavaScript编程语言,并在JavaScript这条路上越走越深。

毕业之后:当时谷歌浏览器有个实验项目,尤雨溪深受启发,于是他自己就做了一些开源的小项目放到了网上,这些小项目被谷歌创意实验室的人发现了,于是他们邀请他加入五人项目组,就是由五个人组成的一个项目组,尤雨溪很高兴地加入了。顺利进入谷歌之后,尤雨溪主要从事的是原型设计,当时他主要使用的是angular,但是他发现angular虽然有数据绑定等好方法,但是它过于臃肿,于是他想自己写一个好用的脚手架,于是vuejs诞生了。可以说vuejs最初的版本借鉴了很多angular的思想。最开始的时候这个框架只是他自己使用,后来他感觉好东西要分享,于是在2014 年 2 月他做了一些封装,就把他提交到github上去了。而vuejs一经发布,就受到了很多人的追捧,可以说vuejs就是人们苦苦寻找的那个好用的前端框架。由于在vuejs这个开源项目上的工作,尤雨溪很轻松的加入了Meteor公司(没有面试,直接加入)。在Meteor公司工作的那段时间,尤雨溪也在持续性的为vue贡献代码,你可以看到他的github首页是这个样子的: alt 随着Laravel框架开始使用Vue,尤雨溪第一次意识到Vue在商业上的用途,但是也有不少人质疑Vue的稳定性,于是尤雨溪在2015年花了大概1个月的时间修复bug和整理文档,在2015年10月发布了V1.0版本。随着Vue的用户越来越多,需要开发的工作越来越多,随着vue的成长需要修改的bug也越来越多,与是尤雨溪逐渐考虑离开Meteor公司去全职从事vue的开发工作(在Meteor公司的发展没有全职搞Vue的发展空间大)。

全职做Vue:后来尤雨溪在patreon进行了众筹,众筹的效果是非常满意的,每个月他几乎可以收到1万美元的赞助。因此他将全部精力都投入到了vuejs的开发和推广上面,参加各种JS交流大会,分享vuejs的开发经历,分享使用vuejs进行开发的技巧和方法。尤雨溪是一个中国人,在中文JavaScript社区就很活跃,经常在知乎上回答网友的问题,并来中国参加各种活动,随着Vue的逐渐成熟,国内如阿里巴巴、腾讯等知名互联网公司也开始积极使用Vue。全职做Vue后,他逐渐找到了适合自己的工作与生活节奏,也将Vue送入了GitHub TOP3 Repo。这一切看似不难,如同每一次人生选择,之后的发展轨迹便顺理成章一样。尤雨溪本人则认为,时机、坚持、基于用户去思考,三者缺一不可。

2、Vue的发展过程

以下是Vue的重要发展节点:

  • 2013年,在 Google 工作的尤雨溪,受到 Angular 的启发,开发出了一款轻量级框架,最初命名为 Seed 。
  • 2013.12,更名为Vue(View的法语),图标颜色是代表勃勃生机的绿色,版本号是 0.6.0。
  • 2014.01.24,Vue 正式对外发布,版本号是 0.8.0。
  • 2014.02.25,0.9.0 发布,有了自己的代号:Animatrix,此后,重要的版本都会有自己的代号。
  • 2015.06.13,0.12.0,代号Dragon Ball,Laravel 社区(一款流行的 PHP 框架的社区)首次使用 Vue,Vue 在 JS 社区也打响了知名度。
  • 2015.10.26,1.0.0 Evangelion 是 Vue 历史上的第一个里程碑。同年,vue-router、vuex、vue-cli 相继发布,标志着 Vue从一个视图层库发展为一个渐进式框架。
  • 2016.10.01,2.0.0 是第二个重要的里程碑,它吸收了 React 的虚拟 Dom 方案,还支持服务端渲染。自从Vue 2.0 发布之后,Vue 就成了前端领域的热门话题。
  • 2019.02.05,Vue 发布了 2.6.0 ,这是一个承前启后的版本,在它之后,推出了 3.0.0。
  • 2019.12.05,在万众期待中,尤雨溪公布了 Vue 3 源代码,此时的 Vue 3仍 处于 Alpha 版本。
  • 2020.09.18,Vue.js 3.0 正式发布。

3、Vue的应用

Vue的定位就是以低门槛起家,市场定位的主要用户自然是中小型企业,当然这不能代表Vue不适合于大型项目!虽然行业内很多人认为Vue不适合于大型项目,但是我认为就算Vue真的不适合大型项目,互联网之广阔,有着足够的空间给Vue的开发者去生存了。

尤雨溪在知乎上对Vue在国际上没影响力的部分回复如下:真要说大机构,GitLab 是 Vue 写的,最近上市了,160 亿美元市值,可还行?Wikimedia(Wikipedia 背后的基金会)全线转向 Vue,算大机构不?NASA 的火箭发射控制系统有部分界面用 Vue 写的,够高大上了么(Vue 的贡献者因此都拿到了 NASA 2020 火星任务的 GitHub 徽章)?Google 的求职系统 careers.google.com 是 Vue 写的,用它投过简历不?苹果 SwiftUI 的教程 Vue 写的,学原生开发的时候看过没?LV 美国官网 Nuxt/Vue 写的,买过几个没?你翻墙上 P 站解决生理需求的时候,Vue 的 logo 也会亮起来,这个流量又如何?

尤雨溪设计Vue的初衷是可以让那些像他一样非科班出身的人也可以简单的编写网页,不懂js的其他设计职业也可以参与其中。只是可能情况有点出乎意料,这玩意火了,而且现在还TND造成了"360行,行行转前端"的奇葩盛况。大量或少或无经验的从业者通过Vue找到了工作。个人认为这是符合尤雨溪的初衷的,因为很多没有任何前端知识的人只需要通过极短的时间(相对其他语言和框架的学习成本)就可以达到找个小公司上班的水平。对此我只能说呵呵了,哈哈哈。

总结:Vue是尤雨溪推出的前端开源框架,简单讲就是用于开发网站,特点是简单易学,能快速上手,目前广泛应用于中小企业,很多非计算机科班出身的同学通过Vue进入了计算机行业工作。

参考资料:

  1. 2020 Vuejs 最新纪录片 —— 听听尤雨溪的心路历程: https://zhuanlan.zhihu.com/p/120227554
  2. 尤雨溪回答为什么Vue在国际上越来越没影响力?:https://www.zhihu.com/question/472193255/answer/2235015723
  3. 为什么尤雨溪的宣传能力那么强?:https://www.zhihu.com/question/483664318/answer/2094425714