尤雨溪:Vue3 将在2022年2月7日成为新的默认版本(你准备好了吗?)
划重点:Vue3 将在 2022 年 2 月 7 日成为新的默认版本!
请务必阅读可能需要采取的措施部分,来确认你是否需要在默认版本切换之前做相应改动以避免发生异常。
从库到框架
在最开始的时候,Vue 仅仅是一个运行时库。但这些年来,它已经逐步发展成了一个包含许多子项目的框架:
核心库,即
vue
npm 包内容足够当作一本书的文档
构建工具链(Vue CLI、Vue Loader 和其他支持包)
用于构建单页应用的路由 Vue Router
用于状态管理的 Vuex
用于调试和分析的浏览器开发者工具扩展
用于支持开发单文件组件的 VSCode 扩展 Vetur
用于进行静态风格/错误检查的 ESLint 插件
用于组件测试的 Vue Test Utils
利用 Vue 运行时功能的定制 JSX Babel 插件
用于静态网站生成的 VuePress
正因为 Vue 是一个社区驱动的项目,才让这一切成为可能。这些项目中的许多都是由社区成员发起,他们后来成为了 Vue 团队的成员。其余的项目最初由我发起,但现在除了核心库之外,几乎都完全由团队维护。
Vue3 的 “软发布”
随着核心库发布新的大版本,框架的所有其他部分也需要一起同步更新。我们还需要为 Vue2 用户提供一个升级方案。对于 Vue 这样一个社区驱动的团队来说,这是一个巨大的工程。在 Vue3 的核心库完成的时候,框架的其他部分要么还在 beta 状态,要么还没有开始适配 Vue3。当时我们的决定是先发布核心库,这样早期用户可以先用起来,库和上层框架的开发者也可以先适配起来,而我们则继续更新框架的其余部分。
在这个过程中,我们依然将 Vue2 保留为文档和 npm 安装时的默认版本。这是因为我们知道对于大部分用户来说,在 Vue3 的其余部分完善以前,Vue2 仍然提供了更一致且完整的体验。
崭新的 Vue
软发布” 的过程比预期要长,但这个时刻终于到了:我们很高兴地宣布,Vue3 将在 2022 年 2 月 7 日成为新的默认版本。
除了 Vue 核心库以外,我们还几乎改进了框架的每个方面。
基于 Vite[1] 的极速构建工具链
<script setup>
带来的开发体验更丝滑的组合式 API 语法Volar[2] 提供的单文件组件 TypeScript IDE 支持
vue-tsc[3] 提供的针对单文件组件的命令行类型检查和生成
Pinia[4] 提供的更简洁的状态管理
新的开发者工具扩展,同时支持 Vue2/Vue3,并且提供一个插件系统[5]来允许社区库自行扩展开发者工具面板。
我们还彻底重写了主文档。全新的 vuejs.org[6] (目前处于待发布状态,中文版[7]的翻译还在进行中) 将提供最新的框架概述与开发建议、针对不同背景的用户的灵活的学习路径,在整个指南与示例中都能够在选项式 API 和组合式 API 之间进行切换,以及许多新的深入章节。新文档本身的网站性能也非常优秀——我们将在不久后的另一篇博文中详细探讨一下。
版本切换细节
下面是我们所说的“新的默认版本”的具体细节。此外,请阅读可能需要采取的措施[8]部分,来确认你是否需要在默认版本切换之前做相应改动以避免发生异常。
npm 发布标签
npm install vue
将默认安装 Vue3。所有其他官方 npm 包的
latest
发布标签将指向其 Vue3 的兼容版本,包括vue-router
、vuex
、vue-loader
和@vue/test-utils
。
官方文档与站点
所有的文档和官方站点将默认切换到 Vue3 版本。包括:
vuejs.org
router.vuejs.org
vuex.vuejs.org
vue-test-utils.vuejs.org (将迁移到 test-utils.vuejs.org)
template-explorer.vuejs.org
请注意,新的 vuejs.org 将是完全重写的版本[9],而不是目前部署在 v3.vuejs.org 的版本。
这些站点当前的 Vue2 版本将被迁移到新地址 (版本前缀表示库的各自版本,而非 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 仓库将把默认分支切换到 Vue3 对应的版本。此外,以下仓库都将被重命名,以删除其名称中的 next
:
vuejs/vue-next
-> `vuejs/core`[10]vuejs/vue-router-next
-> `vuejs/router`[11]vuejs/docs-next
-> `vuejs/docs`[12]vuejs/vue-test-utils-next
-> `vuejs/test-utils`[13]vuejs/jsx-next
-> `vuejs/babel-plugin-jsx`[14]
此外,主文档的翻译仓库将被移至 `vuejs-translations` 组织[15]下。
GitHub 会自动处理仓库的重定向,所以之前的源码与 issue 问题的链接应该仍然有效。
开发者工具扩展
开发者工具 v6 目前是发布到 Chrome Web Store 的 beta 频道[16]下的,在版本切换后,将移至稳定频道[17]。
目前的稳定频道仍然可用。它将被迁移到遗留频道[18]。
可能需要采取的措施
使用未指定版本的 CDN 链接
如果你通过 CDN 链接使用 Vue2 而没有指定版本,请确保通过 @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>
注意:即使使用 Vue3,你也应该始终在生产环境指定一个版本范围,以避免意外地加载到未来的大版本。
npm latest
标签
如果你使用 latest
标签或 *
来从 npm 安装 Vue 或其他官方库,请更新为明确使用兼容 Vue2 的版本:
{"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://zhuanlan.zhihu.com/p/460055155
英文原文:https://blog.vuejs.org/posts/vue-3-as-the-new-default.html
参考资料
[1] Vite: https://vitejs.dev/
[2] Volar: https://marketplace.visualstudio.com/items?itemName=johnsoncodehk.volar
[3] vue-tsc: https://github.com/johnsoncodehk/volar/tree/master/packages/vue-tsc
[4] Pinia: https://pinia.vuejs.org/
[5] 插件系统: https://devtools.vuejs.org/plugin/plugins-guide.html
[6] 全新的 vuejs.org: https://staging.vuejs.org
[7] 中文版: https://staging-cn.vuejs.org
[8]
可能需要采取的措施: #potential-required-actions
[9] 完全重写的版本: https://staging.vuejs.org
[10] vuejs/core
: https://github.com/vuejs/core
[11] vuejs/router
: https://github.com/vuejs/router
[12] vuejs/docs
: https://github.com/vuejs/docs
[13] vuejs/test-utils
: https://github.com/vuejs/test-utils
[14] vuejs/babel-plugin-jsx
: https://github.com/vuejs/babel-plugin-jsx
[15] vuejs-translations
组织: https://github.com/vuejs-translations
[16] beta 频道: https://chrome.google.com/webstore/detail/vuejs-devtools/ljjemllljcmogpfapbkkighbhhppjdbg
[17] 稳定频道: https://chrome.google.com/webstore/detail/vuejs-devtools/nhdogjmejiglipccpnnnanhbledajbpd
[18] 遗留频道: https://chrome.google.com/webstore/detail/vuejs-devtools/iaajmlceplecbljialhhkmedjlpdblhp
尤雨溪:Vue3 将在2022年2月7日成为新的默认版本(你准备好了吗?)相关推荐
- 尤雨溪主题演讲《2022 前端生态趋势》全记录
第二届稀土开发者大会 尤大关于 <2022 Web 前端生态趋势> 的主题分享,记录如下,有时间的同学可以观看大会的回放:juejin.cn/live/xdc202- 先放一张整理好的大纲 ...
- Vue3入门笔记—2022年1月9日
1. 响应式值(ref和reactive) 一般: 1.ref用于单个值, 2.reactive用于对象类型的数据. 例如: const name = ref("zhangsan" ...
- 截至2022年1月12日,Android Gradle 插件版本对照说明
android官网参考链接
- 尤雨溪:Vue 3 将成为新的默认版本
点击上方"CSCDN精品课",选择"置顶公众号" 第一时间获取精品编程教程 1 月 20 日,Vue 作者尤雨溪在 GitHub 上发布最新公告,表示&q ...
- 尤雨溪:Vue3即将成为新的默认版本!
尤雨溪在github宣布,Vue3将在2月7号成为新的默认版本 这意味着后续如果有新项目使用vue开发,很多脚手架也会跟进默认选择vue3版本,vue3已经到了不得不学的地步了,春节在家没事的小伙伴, ...
- 尤大大(尤雨溪)的年度总结、预期
一.前言 刚刚在浏览Vue官网的时候,看看博客,发现尤大大写了年度总结和展望预期,感觉挺好的,这也预示着Vue新的一年的发展方向! 看一下,顺便边缘OB一下哈!! 下面我们进入正文! 二.致辞 新年快 ...
- Vue 3的设计过程(翻译自尤雨溪原文)
转载声明:本文翻译自尤雨溪微博链接原文,主要介绍了Vue 3的设计过程.对原文感兴趣的可查看原文(英文版):The process: Making Vue 3.翻译不当之处敬请参考原文予以纠正. Vu ...
- 学习尤雨溪写的 Vue3 源码中的简单工具函数
大家好,我是若川.最近组织了源码共读活动.每周读 200 行左右的源码.很多第一次读源码的小伙伴都感觉很有收获,感兴趣可以加我微信ruochuan12,拉你进群学习. 初学者也能看懂的 Vue3 源码 ...
- 尤雨溪:重头来过的 Vue3 带来了什么?
作者:尤雨溪,翻译:CSDN 英文原文:https://increment.com/frontend/making-Vue-3/ 在过去的一年里,Vue 团队一直在开发 Vue.js 的下一个主要版本 ...
最新文章
- 如何网络监测其他计算机关闭445端口,关闭445端口的方法,教您电脑如何关闭445端口...
- 简述Java内存模型的由来、概念及语义
- vscode代码运行时间工具_10款实用的VSCode插件提升你的编辑体验 | 第98期
- python和flask中返回JSON数据
- 玩转oracle 11g(40):Oracle11g 不区分大小写设定
- 13新功能_新功能简介|MySQL8.0数据查询脱敏
- Linux日常使用的一些积累
- linux给命令起别名命令,alias命令 – 设置命令别名
- Facebook Cache Token Issue
- 如何制作一款HTML5 RPG游戏引擎——第二篇,烟雨+飞雪效果
- 使用AdvinceInstaller把exe或者msi重新包装成为msi静默安装程序
- Axure的一些入门小案例
- 华为云计算HCNA--存储虚拟化
- 如何为html代码加密
- C/C++KTV点歌系统
- Activator 通过SSH解锁屏幕等手势操作
- 华为od试题java_华为od社招一面凉经
- 后端面经(已收到腾讯实习offer)
- 小程序开发:完整发布上线流程
- Java基础一(Java核心技术卷I)
热门文章
- 2021正睿csp7连day3
- 融云 java_融云开发者文档
- C++模板偏特化和全特化
- 【Fuzzy】隶属度函数和模糊推理
- 【20211207】【雷达】毫米波雷达(一)—— 基本原理
- 点云 数据增强(Data Augmentation):方法与python代码
- 【Unity】动作游戏开发实战详细分析-26-组合攻击
- ccpc网络预选赛总结
- sendcloud php 群发,laravel sendcloud发送邮件
- Java 动态代理,invoke() 自动调用原理,invoke() 参数