当前位置:首页 > 技术文章 > 正文内容

Vue.js 承诺减少升级痛苦,推出Vapor 模式

导读:Vue.js团队将承诺在版本升级时减少痛苦。

近日,在 Vue 和 Nuxt 团队的支持下创建的《Vue.js 2025 状态报告》,这展示了Vue这一流行前端框架的成熟度。

与此同时,Vue 创始人尤雨溪(Evan You)表示,一项重大优化功能 Vapor 模式因兼容性问题而推迟发布。

Vue.js 是 React.js 的一个流行替代品,因其易于上手而广受欢迎,不过 React 仍占主导地位。根据最新的StackOverflow 调查,15% 的开发人员使用 Vue.js,而使用 React 的比例为 39.5%,在上一次JavaScript 状态调查中, 51% 的 JavaScript 开发人员使用Vue.js ,而 React 的比例为 81.1%。

根据调查显示使用这些框架构建的网站数量,React 的主导地位甚至更大。React 拥有超过 5200 万个活跃网站,而 Vue.js 目前只有 800 万个。

尽管如此,从许多方面来看,Vue.js 在前端框架中排名第二。该报告对 1,428 名专业研发人士进行了调查,主要是开发人员或 CTO(首席技术官),其中 80% 的人表示他们将在新项目中使用 Vue.js。

在 2021 年进行的上一次此类调查中,这一数字为 74%。

Vue.js 是前端技术堆栈的一部分,该堆栈包括同样由尤雨溪创建的 Vite 构建工具和 Nuxt.js 框架,后者基于 Vue 构建,但添加了中间件、服务器端渲染 (SSR) 和性能优化等功能。

尤雨溪在2024年创立了一家由风险投资公司资助的公司 VoidZero,旨在提供基于 Vite 的统一 JavaScript(包括 TypeScript)工具。

Vue.js 的下一步是什么?尤雨溪这样说,Vapor 模式经过了大规模重构,将在即将发布的 3.6 版本中正式推出。

此外,Vapor Mode 还放弃了在内存中保存虚拟 DOM(文档对象模型)以实现快速更新的概念,而是直接更新真实 DOM。这样可以减少内存使用,并充分利用针对快速 DOM 更新进行了优化的现代 Web 浏览器。他还说:“Vapor 模式功能已经搁置了几个月,但我们正在重新开始开发。”Vapor 模式计划作为一项实验性功能出现在 Vue 3.6 中,但我们被告知“它的功能不会完全完备。”

尤雨溪表示,最大的挑战是兼容性。“由于 Vapor 模式是一种全新的运行时,因此尝试使 Vapor 模式与其他模式之间的行为保持一致将是一项艰巨的工作,”他如此说。

Vue.js 在第 3 版中进行了重大更新,造成从 Vue.js 2 迁移难度过大,这些更改至今仍对开发人员产生影响。约 25% 的受访者表示迁移困难是一项挑战,是人们排名最高的痛点。尤雨溪说这种情况不会再发生了。“Vue 3 之后的 Vue 是一个非常稳定的框架,”他说。如果有 Vue 4,它将是“几乎是同样的东西,但会有一些小的重大变化,”他向开发者们保证道。

最新调查显示 Vue.js 存在哪些痛点

Nuxt 同样也是如此,它在 v2 和 v3 之间发生了根本性变化。

“如果升级过程痛苦或耗时,我们就完全失去了采用 Nuxt 的信心,”一些团队成员在报告中表示。

该团队承诺,即将推出的 Nuxt 4 应该会提供舒适平滑的升级体验。

当被问及 JavaScript 生态系统的未来时,尤雨溪表示,“Node、Bun 和 Deno 之间的运行时之战也值得关注。”不过,他押注 Node.js,因为其他运行时“最终都会与 Node.js 兼容”。

调查中 82.4% 的 Vue.js 开发人员使用 TypeScript;但其在 Vue.js 中的使用并不像他们希望的那样顺畅。

在报告指出:“开发人员提到了 props、反应性和模板推断方面的问题。”大型 TypeScript 代码库的开发速度也被认为是一项挑战,也许在它即将推出的基于 Go 的编译器可能会有所帮助。

尤雨溪表示,Vue.js 是为“不喜欢 React 某些功能的人”的替代方案。不过,在这种背景下,我们也经常听到有人提到 Svelte 的优点,尤雨溪也承认这个框架“现在是生态系统中的重要参与者”。

相关文章

Excel VBA 主界面/一步一步带你设计【收费管理系统】02

本文于2023年5月14日首发于本人同名公众号,更多文章案例请关注微信公众号:Excel活学活用!☆本期内容概要☆用户窗体设置:主界面、主页设计上期我们分享了EXCEL读取ACCESS数据库表,实现系...

vue:组件中之间的传值(vue组件之间传参)

一、父子组件之间的传值----props/$emit1、父组件向子组件传值--props2.子组件想父组件传值-this.$emit('select',item)二、父组件向下(深层)...

【Vue3 基础】05.组件化(组件使用vuex)

这是 Vue3 + Vite + Pinia +TS + Element-Plus 实战系列文档。最近比较忙没什么时间写文章,争取早日把这个系列完结吧~生命周期和模板引用在本章之前,我们通过响应式 a...

Vue状态管理:Pinia完整指南(状态管理vuex)

概述本文专注于Vue的状态管理。我们将深入探讨如何使用Pinia来管理Vue应用程序的状态。状态管理使用props和emit进行父子组件间的数据协作虽然方便,但在以下情况下可能不够充分,数据传递往往会...

Vue 2 和 Vue 3的区别(vue2和vue3的区别有哪些)

1.双向数据绑定原理不同Vue2 的双向数据绑定是利用ES5的一个APIObject.definePropert() 对数据进行劫持,结合发布订阅模式的方式来实现的。Vue3 中使用ES6的Proxy...

「 VUE3 + TS + Vite 」父子组件间如何通信?

组件之间传值,大家都很熟悉,涉及到 VUE3 +TS 好多同学就无从下手了,所以分享这篇文章,希望看完后提起 VUE3+TS 能够不慌不忙。平时使用的函数如:ref、reactive、watch、co...