vue 3 项目必须用 volar 而非 vetur,因二者底层语言服务冲突,共存会导致模板类型推导失效、ref跳转失败、defineprops无提示等问题;需禁用vetur、启用volar并重启vscode。

Vue 3 项目必须用 Volar,不是“可选”,也不是“试试看”——Vetur 和 Volar 同时启用会导致模板类型推导失效、ref 变量跳转失败、defineProps 类型不提示等硬伤,且 VSCode 不会主动报错,只表现为“智能提示突然变弱”。
为什么 Volar 必须禁用 Vetur
Volar 和 Vetur 都注册了 .vue 文件的语言服务,但底层机制冲突:Vetur 基于旧版 Language Server 协议(LSP)模拟 Vue 2 行为,而 Volar 使用 Vue 官方维护的 @volar/vue-language-service,深度对接 vue-tsc 和组合式 API 的响应式类型系统。两者共存时,VSCode 会随机启用其中一个,导致:
-
template中的{{ count }}无法跳转到const count = ref(0) -
defineProps的泛型参数不触发 TS 类型检查(例如写错字段名也不报错) - 保存时 ESLint 不再校验
script setup区域的未使用变量
实操建议:

