写点什么

尤雨溪:Vue 3 将成为新的默认版本

  • 2022 年 1 月 24 日
  • 本文字数:2395 字

    阅读完需:约 8 分钟

尤雨溪:Vue 3 将成为新的默认版本

近日,尤雨溪宣布: Vue 3 将在 2022 年 2 月 7 日成为新的默认版本。



GitHub 的公告信息里显示,“开发者要关注可能需要采取的措施,来确认是否需要在默认版本切换之前做相应改动以避免发生异常。”

 

以下为尤雨溪公告原文:

从库到框架

 

在最开始的时候,Vue 仅仅是一个运行时库。但这些年来,它已经逐步发展成了一个包含许多子项目的框架:

 

  • 核心库,即 vue npm 包

  • 内容足够当作一本书的文档

  • 构建工具链(Vue CLI、Vue Loader 和其他支持包)

  • 用于构建单页应用的路由 Vue Router

  • 用于状态管理的 Vuex

  • 用于调试和分析的浏览器开发者工具扩展

  • 用于支持开发单文件组件的 VSCode 扩展 Vetur

  • 用于进行静态风格/错误检查的 ESLint 插件

  • 用于组件测试的 Vue Test Utils

  • 利用 Vue 运行时功能的定制 JSX Babel 插件

  • 用于静态网站生成的 VuePress

 

正因为 Vue 是一个社区驱动的项目,才让这一切成为可能。这些项目中的许多都是由社区成员发起,他们后来成为了 Vue 团队的成员。其余的项目最初由我发起,但现在除了核心库之外,几乎都完全由团队维护。

Vue 3 的 “软发布”

 

随着核心库发布新的大版本,框架的所有其他部分也需要一起同步更新。我们还需要为 Vue 2 用户提供一个升级方案。对于 Vue 这样一个社区驱动的团队来说,这是一个巨大的工程。在 Vue 3 的核心库完成的时候,框架的其他部分要么还在 beta 状态,要么还没有开始适配 Vue 3。当时我们的决定是先发布核心库,这样早期用户可以先用起来,库和上层框架的开发者也可以先适配起来,而我们则继续更新框架的其余部分。

 

在这个过程中,我们依然将 Vue 2 保留为文档和 npm 安装时的默认版本。这是因为我们知道对于大部分用户来说,在 Vue 3 的其余部分完善以前,Vue 2 仍然提供了更一致且完整的体验。

崭新的 Vue

 

“软发布” 的过程比预期要长,但这个时刻终于到了:我们很高兴地宣布,Vue 3 将在 2022 年 2 月 7 日成为新的默认版本。

 

除了 Vue 核心库以外,我们还几乎改进了框架的每个方面。

 

  • 基于 Vite 的极速构建工具链

  • <script setup> 带来的开发体验更丝滑的组合式 API 语法

  • Volar 提供的单文件组件 TypeScript IDE 支持

  • vue-tsc 提供的针对单文件组件的命令行类型检查和生成

  • Pinia 提供的更简洁的状态管理

  • 新的开发者工具扩展,同时支持 Vue 2/Vue 3,并且提供一个插件系统来允许社区库自行扩展开发者工具面板。

 

我们还彻底重写了主文档。全新的 vuejs.org (目前处于待发布状态,中文版的翻译还在进行中) 将提供最新的框架概述与开发建议、针对不同背景的用户的灵活的学习路径,在整个指南与示例中都能够在选项式 API 和组合式 API 之间进行切换,以及许多新的深入章节。新文档本身的网站性能也非常优秀——我们将在不久后的另一篇博文中详细探讨一下。

版本切换细节

 

下面是我们所说的“新的默认版本”的具体细节。此外,请阅读可能需要采取的措施部分,来确认你是否需要在默认版本切换之前做相应改动以避免发生异常。

npm 发布标签

 

  • npm install vue 将默认安装 Vue 3。

  • 所有其他官方 npm 包的 latest 发布标签将指向其 Vue 3 的兼容版本,包括 vue-router、vuex、vue-loader 和 @vue/test-utils。

官方文档与站点

 

所有的文档和官方站点将默认切换到 Vue 3 版本。包括:

 

  • vuejs.org

  • router.vuejs.org

  • vuex.vuejs.org

  • vue-test-utils.vuejs.org (将迁移到 test-utils.vuejs.org)

  • template-explorer.vuejs.org

 

请注意,新的 vuejs.org 将是完全重写的版本,而不是目前部署在 v3.vuejs.org 的版本。


这些站点当前的 Vue 2 版本将被迁移到新地址 (版本前缀表示库的各自版本,而非 Vue 核心库的版本):

 

  • vuejs.org -> v2.vuejs.org (旧的 v2 网址将自动重定向到新地址上)

  • router.vuejs.org -> v3.router.vuejs.org

  • vuex.vuejs.org -> v3.vuex.vuejs.org

  • vue-test-utils.vuejs.org -> v1.test-utils.vuejs.org

  • template-explorer.vuejs.org -> v2.template-explorer.vuejs.org

GitHub 仓库

 

在写这篇文章时,仓库相关的变化已经生效了。

 

vuejs 组织下的所有 GitHub 仓库将把默认分支切换到 Vue 3 对应的版本。此外,以下仓库都将被重命名,以删除其名称中的 next:

 

  • vuejs/vue-next -> vuejs/core

  • vuejs/vue-router-next -> vuejs/router

  • vuejs/docs-next -> vuejs/docs

  • vuejs/vue-test-utils-next -> vuejs/test-utils

  • vuejs/jsx-next -> vuejs/babel-plugin-jsx

 

此外,主文档的翻译仓库将被移至 vuejs-translations 组织下。

 

GitHub 会自动处理仓库的重定向,所以之前的源码与 issue 问题的链接应该仍然有效。

开发者工具扩展

 

开发者工具 v6 目前是发布到 Chrome Web Store 的 beta 频道下的,在版本切换后,将移至稳定频道。

 

目前的稳定频道仍然可用。它将被迁移到遗留频道。

可能需要采取的措施

未指定版本的 CDN 链接

 

如果你通过 CDN 链接使用 Vue 2 而没有指定版本,请确保通过 @2 来指定一个版本范围:

 

- <script src="https://unpkg.com/vue"></script>+ <script src="https://unpkg.com/vue@2"></script>
- <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.min.js"></script>+ <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.min.js"></script>
复制代码

 

注意:即使使用 Vue 3,你也应该始终在生产环境指定一个版本范围,以避免意外地加载到未来的大版本。

npm latest 标签

 

如果你使用 latest 标签或 * 来从 npm 安装 Vue 或其他官方库,请更新为明确使用兼容 Vue 2 的版本:

 

{  "dependencies": {-   "vue": "latest",+   "vue": "^2.6.14",-   "vue-router": "latest",+   "vue-router": "^3.5.3",-   "vuex": "latest"+   "vuex": "^3.6.2"  },  "devDependencies": {-   "vue-loader": "latest",+   "vue-loader": "^15.9.8",-   "@vue/test-utils": "latest"+   "@vue/test-utils": "^1.3.0"  }}
复制代码

 

英文原文地址:https://blog.vuejs.org/posts/vue-3-as-the-new-default.html

2022 年 1 月 24 日 16:458731

评论

发布
暂无评论

TcaplusDB君 · 行业新闻汇编(一)

数据人er

Java-进阶:集合框架1

爱好编程进阶

程序员 后端开发

OpenHarmony新增两个分布式能力!快来了解~

科技汇

npm install xxxx --legacy-peer-deps命令是什么?

华为云开发者社区

前端 npm install 依赖树 对等依赖关系

GitHub上超火的阿里调优专家的677页Java性能调优笔记,已让我拿下5个offer

爱好编程进阶

Java 程序员 后端开发

Hibernate实现CRUD(附项目源码)

爱好编程进阶

Java 程序员 后端开发

【TcaplusDB知识库】TcaplusDB架构介绍

数据人er

聊聊如何在华为云IoT平台进行产品开发

华为云开发者社区

物联网平台 IoT 华为云 iotda 设备接入

Java中当对象不再使用时,不赋值为null会导致什么后果?

爱好编程进阶

Java 程序员 后端开发

TcaplusDB君 · 行业新闻汇编(五)

数据人er

使用APICloud & MobTech SDK 快速实现分享到社交平台功能

APICloud

APP开发 APICloud MobTech袤博科技 社交分享

dubbo实战之二:与SpringBoot集成

爱好编程进阶

Java 程序员 后端开发

【TcaplusDB知识库】TcaplusDB高可用技术介绍

数据人er

TcaplusDB君 · 行业新闻汇编(四)

数据人er

秒云 (元来云志)获邀加入中国开源云联盟,共筑开源生态

秒云

开源 开源生态 开源中国

简述数仓的时间域函数

华为云开发者社区

数据库 时间 时间戳 GaussDB(DWS) 时间域函数

【TcaplusDB知识库】TcaplusDB环境与配置检查介绍

数据人er

Java8新特性-Optional

爱好编程进阶

Java 程序员 后端开发

Java培训MySQL体系构架、存储引擎和索引结构

@零度

MySQL JAVA开发

与多家机构战略合作,背后彰显PlatoFarm元宇宙龙头的实力

西柚子

TcaplusDB君 · 行业新闻汇编(三)

数据人er

java不使用客户端授权密码直接用账号密码发送带附件的邮件

爱好编程进阶

程序员 后端开发

助力提升研发效能的“黄金三角”

博文视点Broadview

git(8)Git 与其他系统

爱好编程进阶

Java 程序员 后端开发

JAVA API调用elasticsearch实现基本增删改查

爱好编程进阶

程序员 后端开发

西门子低代码:探讨应用程序开发的下一步演进方向

西门子低代码:探讨应用程序开发的下一步演进方向

尤雨溪:Vue 3 将成为新的默认版本_前端_闫园园_InfoQ精选文章