Vue中文社区

尤雨溪官宣:Vue (Official)重磅更新!新功能一览!

如果你最近升级了 Vue Language Tools 3.2,很可能会有一种强烈的直觉感受:

Image

Vue,已经不再只是“能写 TS”,而是“原生就是 TypeScript 体验”。

智能提示、自动导入、精准类型推导、局部格式化、语法高亮一致性、稳定性全面提升—— 这些过去只在 纯 TypeScript 项目 里才有的体验,现在在 .vue 文件里一次性给齐了。

为什么说「Vue 变成了 TypeScript」?

先说清楚一个前提:不是语法变了,而是“开发体验的底层标准变了”。

以前的 Vue 是什么状态?

  • .vue 是特殊文件
  • TS 能用,但经常「半懂不懂」
  • 类型提示时好时坏
  • 组件跳转、props 推断不稳定
  • 写得越复杂,IDE 越容易“装死”

本质问题只有一个:Vue 文件里的信息,没有被 TypeScript 完整理解。

现在的 Vue 是什么状态?

在 Vue Language Tools 3.2 之后:

Image
  • .vue 被完整拆解、建模
  • 组件、Props、Slots、v-for、JSDoc👉 都进入 TypeScript 的类型系统
  • 编辑器看到的 Vue,已经是一个类型完备的程序结构

你在 Vue 里得到的,是和 .ts 文件同级的智能体验。

Vue Language Tools 3.2 做了什么?

下面我们按官方 Release Notes 顺序,一项一项拆开来看。

一、SFC:Vue 文件终于“被完全看懂了”

1️⃣ Rich Hover Message(实验性)

Image

现在,把鼠标悬停在组件上,你能看到:

  • Props
  • Slots
  • 额外的类型信息
  • 全部自动生成、结构清晰

这意味着什么?

组件不再是黑盒,而是“可读的类型对象”。

以前你要点进去看定义,现在只需要 hover。

📌 注意: 该功能目前是实验性,需要手动开启Extensions Settings → Vue → Hover: Rich

2️⃣ 组件自动导入,终于和 TS 一样顺滑

Image

输入组件名时:

  • IntelliSense 直接给你候选
  • 选中后自动插入 import
  • 不用手写、不用猜路径

这一步非常关键。

它代表着:

Vue 的组件系统,正式进入“类型可索引”的世界。

这正是 TypeScript 项目里最核心的开发体验之一。

3️⃣ JSDoc 信息真正“生效”了

Image

这次升级里,一个很容易被忽略、但极其重要的点是:

  • @deprecated 会直接显示删除线
  • 注释不再只是“给人看”
  • 而是参与 IDE 的行为决策

这说明什么?

Vue 组件,开始像一个“类型 API”被对待。

这正是 TS 生态的成熟标志。

4️⃣ v-for key 类型与 TS / 运行时对齐

Image

一个非常“工程级”的改动:

  • number 类型的 key
  • 自动视为 string
  • 与 TS 推断 & Vue runtime 完全一致

这解决的是:

  • “类型对,但编辑器报错”
  • “编辑器不报,运行时报错”

现在三者终于统一了。

二、格式化:Vue 不再是格式化的“异类”

5️⃣ 支持「选中范围格式化」

Image

这是一个写多了你就离不开的功能:

  • 不再强制格式化整个文件
  • 精准处理当前代码块
  • 对大组件文件尤其友好

这已经是纯 TS 项目里的标配体验。

6️⃣ 块级格式化设置(Per-block)

Image

现在你可以:

  • template 一套规则
  • script 一套规则
  • style 再一套规则

这意味着:

Vue 文件终于可以无缝接入复杂工程的格式化体系。

而不是被迫迁就一种“Vue 特供格式”。

三、语法 & 高亮:稳定性全面补齐

7️⃣ 修复多年遗留的高亮问题

Image

这是一个“不会上热搜,但人人受益”的升级:

  • 语法高亮不再乱跳
  • 边界 case 被系统性修复
  • 编辑器表现更接近真实语义

稳定性,是专业感的基础。

8️⃣ HTML wrapAttributes 格式终于正确高亮

Image

如果你用过:

  • force-expand-multiline
  • force-aligned

你一定遇到过:格式是对的,但高亮是错的。

现在,这个割裂终于被补上。

写在最后

Vue 并没有“抛弃 JavaScript”, 而是彻底站在了 TypeScript 这一边。

Vue Language Tools 3.2 做的事情只有一件:

让 Vue 在编辑器里的地位,和 .ts 文件完全等价。

  • vue-language-tools-v3.2:https://gist.github.com/serkodev/ab7d6033f889992b779c2f57fa1ba818