php中文网 | cnphp.com

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 802|回复: 0

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

[复制链接]

3138

主题

3148

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

UID
1
威望
0
积分
7946
贡献
0
注册时间
2021-4-14
最后登录
2024-11-21
在线时间
763 小时
QQ
发表于 2022-1-21 20:08:44 | 显示全部楼层 |阅读模式
1 月 20 日,Vue 作者尤雨溪在 GitHub 上发布最新公告,表示“Vue 3 将在 2022 年 2 月 7 日成为新的默认版本!”
此前,尤雨溪于 2018 年宣布重写 Vue,并在 2020 年 9 月 19 日将全新开发的 Vue 3 版本呈现到开发者眼前。在《新程序员:开发者黄金十年》中,当提及重写 Vue 原因时,尤雨溪回应道,“重写的主要原因一个是类型系统,一个是内部逻辑分层。Vue 2 项目先基于 JavaScript,中期加入了 Flow 做类型检查,导致类型覆盖不完整。Flow 本身破坏性更新频繁,工具链支持也不理想,所以决定转为用 TypeScript 重写。Vue 2 的内部逻辑分层不够清晰,对于长期维护是一个负担,这也是一个不重写就很难彻底改善的问题。”
如今 Vue 3 经过一年多的快速迭代即将成为最新的默认版本,无疑也让开发者更为聚焦。在本次公告中,尤雨溪也特别提醒“务必阅读可能需要采取的措施部分,来确认你是否需要在默认版本切换之前做相应改动以避免发生异常。”


以下为公告全文(https://gist.github.com/yyx99080 ... al-required-actions):

从库到框架
在最开始的时候,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 频道下的,在版本切换后,将移至稳定频道。

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

可能需要采取的措施 {#potential-required-actions}
使用未指定版本的 CDN 链接

如果你通过 CDN 链接使用 Vue 2 而没有指定版本,请确保通过 @2 来指定一个版本范围:
[mw_shl_code=applescript,true]- <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>
[/mw_shl_code]

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

npm latest 标签

如果你使用 latest 标签或 * 来从 npm 安装 Vue 或其他官方库,请更新为明确使用兼容 Vue 2 的版本:
[mw_shl_code=applescript,true]{
  "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"
  }
}
[/mw_shl_code]





上一篇:Web复习选择、判断题(学习通全部)(精心整理)
下一篇:[JavaScript]解构赋值详解
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|php中文网 | cnphp.com ( 赣ICP备2021002321号-2 )

GMT+8, 2024-11-22 03:13 , Processed in 0.294157 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

申明:本站所有资源皆搜集自网络,相关版权归版权持有人所有,如有侵权,请电邮(fiorkn@foxmail.com)告之,本站会尽快删除。

快速回复 返回顶部 返回列表