volar是vue3唯一推荐的官方语言插件,必须卸载vetur以避免类型推导错乱、defineprops报红等问题;右下角语言模式应显示“vue (volar)”,否则需手动切换并确保volar已启用。

直接用 Volar,别装 Vetur
Vue 3 项目里,Volar 是唯一推荐的官方语言支持插件。装了 Vetur 会导致类型推导错乱、defineProps 报红、ref 类型丢失——这些不是配置问题,是架构冲突。VSCode 1.88+ 已默认禁用 Vetur 的 Vue 3 支持,但旧项目残留或手动启用仍会触发。
确认是否生效:打开一个 .vue 文件,右下角语言模式应显示 Vue (Volar),而不是 Vue 或 Vue (Vetur)。如果显示不对,点击它手动切换;若无此选项,说明 Volar 未启用或被禁用。
- 卸载
Vetur(即使没主动装过,也可能随旧插件包带入) - 确保
Volar和Volar Server都已安装且启用 - 关闭所有 Vue 文件再重开,避免缓存干扰
vue.json 代码片段必须手配,插件不代劳
所谓“Vue Snippets 插件”大多只提供零散 API 片段(比如输入 vs-ref 插入 ref()),但完整 <script setup lang="ts"></script> 模板得靠自己写 vue.json。插件不会自动创建或维护这个文件,也不会帮你校验 JSON 格式。
常见错误现象:vue3-setup 前缀输完按 Tab 没反应、VSCode 静默忽略整个片段文件、光标位置错乱。
递归分析 Vue 项目组件依赖,从入口文件生成组件层级图,支持 Vue 2/3,输出组件名、文件路径和属性。适用于分析组件结构、排查依赖或了解项目架构。
- 路径必须准确:
~/Library/Application Support/Code/User/snippets/vue.json(macOS)、%APPDATA%CodeUsersnippetsue.json(Windows) - 文件内容必须是合法 JSON:不能有末尾逗号(trailing comma)、字符串必须双引号、
$1/$0位置要合理 - 语言模式必须设为
Vue(不是JavaScript或TypeScript),否则前缀不触发
prefix 冲突时,优先级取决于文件位置和语言关联
你可能同时有全局 vue.json、工作区 .vscode/snippets/vue.json、甚至某个插件自带的 snippets。VSCode 的加载顺序是:插件 snippets
例如:你在 vue.json 里定义了 "prefix": "vue3",但在一个 .ts 文件里输入 vue3 并不会触发——因为语言模式是 TypeScript,不匹配 vue.json 的作用域。
- 检查当前文件右下角语言模式,确保是
Vue (Volar) - 想让片段在所有文件生效?得另建
javascript.json或typescript.json,并复制对应内容 - 工作区级 snippets 优先级高于用户级,适合团队统一模板,但需提交到
.vscode/目录
Tab 切换焦点失效,大概率是 $ 符号转义或格式错误
vue.json 中用 $1、$2 控制 Tab 跳转顺序,但 VSCode 对反斜杠和美元符敏感。常见表现:按 Tab 直接插入文字 $1,而不是跳到第一个占位符;或者光标卡死不动。
根本原因不是 VSCode 版本问题,而是 JSON 字符串内未正确转义。
- 所有
$符号必须写成\$1(两个反斜杠 + 美元符 + 数字) - 示例正确写法:
"body": [ "<script setup lang='\"ts\"'>", "const count = ref(\$1)", "" ]</script> - 别用单引号包裹整个
body数组,JSON 只认双引号 - 保存后重启 VSCode 或重载窗口(
Ctrl+Shift+P→Developer: Reload Window)
vue.json 的配合是硬性前提,不是可选项。任何“一键生成”宣传都绕不开这两步手动配置。最容易被忽略的是语言模式切换和 $ 转义——它们不出错时一切正常,一出错就完全失灵,且没有明确报错提示。前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










