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

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

zonemu3个月前 (07-13)技术文章38

导读: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 的优点,尤雨溪也承认这个框架“现在是生态系统中的重要参与者”。

相关文章

Garuda Linux:现代化、注重性能与美观的Linux发行版

什么是 Garuda Linux?Garuda Linux 是一个基于 Arch Linux 的现代化、注重性能与美观的桌面操作系统。它面向对性能有较高要求的用户,尤其受到 Linux 爱好者、游戏玩...

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

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

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

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

前端学习又一大里程碑:html5+js写出歌词同步手机播放器

需要完整代码和视频请评论后加前端群470593776领取javascript进阶课题:HTML5迷你音乐播放器学习疲惫了,代码敲累了,听听自己做的的音乐播放器,放松与满足知识点:for循环语句,DOM...

HTML5学习笔记三:HTML5语法规则(html5语法详解)

1.标签要小写2.属性值可加可不加””或”3.可以省略某些标签 html body head tbody4.可以省略某些结束标签 tr td li例:显示效果:5.单标签不用加结束标签img inpu...

简析html5、html的13条区别(html5和html的突出优点)

html5的流行近一两年,在国内主要是移动端和html5游戏的发展,国外也是最近纷纷使用html5,如谷歌,全面的停止flash的广告的投放量,用html5取代之,那么html5较html的区别在哪里...