textlize pricing account
Evan You: Google, Vue, Vite, Nuxt, Next, Vercel & VoidZero
Cover

01:04:04

从艺术史到Vue.js:Evan You的技术之旅与未来展望

Vue.js创始人Evan You在访谈中分享了框架的诞生故事、Vue 3的设计哲学、Vite的敏捷开发理念,以及新公司Void Zero打造统一JavaScript工具链的愿景。

核心摘要

  • Vue 3.6 性能飞跃:内置的Alien Signals响应式系统将成为目前最快的实现,性能提升且100%向后兼容。
  • Vapor Mode编译策略:一种可选的、更高效的编译模式,旨在为复杂应用提供极致性能,完全兼容现有生态。
  • 工具链统一愿景:通过Void Zero公司打造类似Laravel或Cargo的一体化JavaScript/TypeScript开发体验。
  • 框架稳定性优先:Vue将长期维护Vue 3,优先保证稳定性和兼容性,而非引入破坏性新特性。

从艺术史到Google创意实验室

Evan You的职业生涯起点并非计算机科学。他本科攻读艺术史,随后在帕森斯设计学院(Parsons)获得了设计与技术专业的艺术硕士学位(MFA)。该课程让他接触到OpenFrameworks(C++)、Processing和Arduino等创意编程工具。

当时,项目演示必须使用自己的电脑,因为编译后的程序无法跨平台运行。这让他深感不便,并开始思考:“如果实验作品是网页,岂不是容易得多?”恰逢Google Chrome实验项目兴起,展示了浏览器中JavaScript的强大能力,这促使他自学JavaScript,并创作了多个Canvas和CSS3实验项目。

一个关键转折点是他成功用纯Web技术克隆了流行的Clear to-do应用(以其流畅的手势交互著称)。该作品让他在毕业后获得了Google创意实验室(Google Creative Lab)“Fiverr”项目的青睐,担任“创意技术专家”一职。在那里,他专注于快速原型开发,并首次见到了数据可视化专家Mitcho(Michael Chang)。

Vue.js的诞生:追求更简单的解决方案

在Google期间,Evan需要构建大量交互界面。起初他使用jQuery,但很快发现代码难以维护。在尝试了Backbone和AngularJS 1后,他发现这些框架对于需要快速迭代的原型项目来说过于复杂。

他特别指出AngularJS的“脏检查”机制效率不高,而当时ES5的Object.defineProperty API提供了拦截属性访问的能力,为实现更高效的响应式系统提供了可能。由于Google创意实验室的项目只需在Chrome Canary中运行,他可以无视旧版浏览器的限制,利用最新技术。这便是Vue最初的原型——一个更轻量、更直观的响应式前端框架。

Vue的早期流行与PHP框架Laravel社区密切相关。当Laravel作者Taylor Otwell在推特上表达对Vue的赞赏后,大量Laravel开发者开始尝试并采纳Vue,因其简单的CDN引入方式和直观的API设计与Laravel的理念非常契合。

Vue 3与组合式API:解决大规模应用的可维护性问题

Evan指出,Vue的用户群体是多元的。一部分开发者构建的是传统的、服务器渲染为主并辅以JavaScript增强的页面,选项式API(Options API)对此类应用非常友好。而另一部分开发者则在构建复杂的单页面应用(SPA),当应用变得巨大时,选项式API和Mixins在逻辑复用和代码组织上会遇到挑战。

组合式API(Composition API)旨在解决这些问题:

  • 逻辑提取与复用:可以更灵活地将组件逻辑提取为可复用的组合式函数,避免了Mixins带来的来源不清晰问题。
  • 更好的TypeScript支持:选项式API依赖于动态合并多个选项到同一个上下文,类型推断极其复杂。组合式API基于简单的函数调用和返回,TypeScript能提供完美的类型推断。

Evan坦言,组合式API的推广过程并非一帆风顺。最初的设计基于Class API,但因过度依赖不稳定的装饰器语法而放弃。随后推出的基于setup函数的组合式API又因语法繁琐而备受争议,直到3.2版本推出<script setup>语法糖后,开发者体验才得到根本改善。他强调,选项式API将作为稳定API被永久维护,不会被废弃。

Vue 3.6:Alien Signals与Vapor Mode

Vue 3.6将带来两项重要更新:

1. Alien Signals:这是Vue响应式系统的一次内部重写,其性能在所有JavaScript信号实现中位居榜首。此次升级将带来显著的内存和性能提升,并且对开发者完全透明,100%向后兼容。

2. Vapor Mode:这是一种可选的编译策略。它完全抛弃了虚拟DOM,将模板编译为极致的、手写风格般的命令式JavaScript代码,旨在为性能敏感的应用提供最大化的性能提升。

Vapor Mode只支持一个更精简的API子集(如仅支持Composition API和<script setup>),这些约束为编译器提供了更多的优化空间。开发者可以在一个大型应用的单个页面中逐步采用Vapor Mode,而无需重写整个项目。

Vite:从Vue专属工具到通用前端工具链

Vite的诞生源于对Vue CLI(基于Webpack)开发服务器启动和热更新(HMR)速度缓慢的不满。Evan的初衷是创建一个按需编译、基于ESM的dev server,以实现近乎瞬时的HMR。

在Vite 1.0发布前夕,受WMR项目的启发,Evan意识到可以将Vue相关的逻辑全部抽离为插件,从而使核心变得框架无关。他果断放弃了1.0的代码,从头开始重写,最终形成了如今这个支持Rollup插件API、框架无关的Vite 2.0。

Vite的成功推动了整个生态对开发体验的重视,甚至促使Webpack等传统工具优化其HMR性能。

Next.js、Vercel与Nuxt

对于Next.js为何选择自研Turbo Pack而非采用Vite,Evan给出了他的见解:Next.js在其发展初期与Webpack深度绑定,进行了大量定制化。当Vite兴起时,Next.js团队已经在Turbo Pack上投入巨资(甚至聘请了Webpack的作者),且其与React服务器组件(RSC)的深度集成非常复杂,迁移到Vite的架构成本和风险都极高。

关于Vercel收购Nuxt Labs,Evan表示这对Nuxt团队和社区是一个积极的发展。他认为Vercel的意图是多元化其框架生态,证明其不仅是“Next.js的托管平台”。对Nuxt团队而言,被收购后无需再为商业化分心,可以更专注于框架开发。Nitro(Nuxt的服务器引擎)支持部署到众多平台的特性也得到了Vercel的推动。

Void Zero:打造一体化的JavaScript工具链

Evan创立Void Zero的核心愿景是解决JavaScript生态的碎片化问题。他指出,与PHP开发者拥有Laravel这样的一体化解决方案不同,JavaScript开发者需要从无数个选择中自行组装、配置并维护一整套工具(测试、格式化、linting、构建等),且要保证它们彼此兼容。

Void Zero旨在提供类似Rust的Cargo或PHP的Laravel般的体验——一个工具搞定一切。其产品V+将整合这些开源工具(如Vite、Vitest),并为企业级用户提供增值功能。

商业模式上,V+将采用宽松的许可:个人开发者、开源项目和小型企业可免费使用,而大型盈利性公司则需要购买许可。这避免了“开源核心”模式带来的功能割裂问题,确保所有人使用的是同一个完整版本。

Vue的未来:独立与稳定

Evan特别强调,Vue.js项目在财务和法律上都与Void Zero公司严格分离,它将继续由开源赞助和捐赠独立运营。目前,有两位核心成员全职投入Vue及相关工具的开发。

Vue本身的API已非常稳定,未来的工作重点将集中在像Vapor Mode这样的可选优化、性能提升和日常维护上,而非引入类似React服务器组件这样的颠覆性特性,其核心原则是“不需要用户重写代码”。

© 2025 textlize.com. all rights reserved. terms of services privacy policy