Volar 是 Vue 3 开发首选,官方推荐、支持 Composition API 类型推导;需配合 Vue VSCode Snippets 等插件补全代码片段,且必须启用 Take Over Mode 并确保文件识别为 Vue 模式。

VSCode 官方市场里没有一个叫“Vue代码片段插件”的统一包,真正起作用的是 Vue Language Features (Volar)(推荐)和已停更但仍有用户在用的 Vetur —— 后者自带基础 snippet,前者需额外配置或搭配专用 snippet 插件才能补全常用模板。
为什么 Volar 是当前 Vue 3 开发的首选
Volar 是 Vue 官方推荐的语言支持插件,原生支持 .vue 单文件组件的类型推导、setup() 语法、defineProps/defineEmits 等新 API。它本身不内置大量代码片段,但提供了 snippets 扩展点,允许你通过配置 vue.json 或安装轻量 snippet 插件来补足。
- 不装
Volar而只装老式 snippet 插件(如VueHelper),很多ref、computed、onMounted的自动补全会失效或类型错乱 -
Volar默认禁用JavaScript/TypeScript内置语言功能,避免与 TS 插件冲突,所以必须确保"typescript.preferences.includePackageJsonAutoImports": "auto"等设置合理 - 若项目是 Vue 2 + Options API,
Vetur仍可工作,但无法正确识别Composition API类型
真正能用的 Vue 片段插件有哪些
以下插件经实测兼容 Volar(需手动启用),且 snippet 命名清晰、不污染全局:
-
Vue VSCode Snippets(作者: sdras):提供vue、vue2、vue3三套前缀,输入vue3-ref→ 补全const xxx = ref(null);vue3-onMounted→ 补全带import的生命周期钩子 -
Vue Peek(非 snippet 类,但强相关):右键点击defineProps可直接跳转到 props 类型定义,省去手动查interface位置 - 自建
vue.json片段(推荐进阶用户):在工作区.vscode/snippets/vue.json中写入自定义项,例如:{ "ref with type": { "prefix": "ref-t", "body": ["const $1 = ref<$2>($3);"], "description": "ref with generic type" } }
常见补全失效的几个原因
即使装了插件,也可能输不出 vue3- 开头的片段,大概率是以下情况之一:
立即学习“前端免费学习笔记(深入)”;
-
Volar未设为默认 Vue 语言服务器:打开命令面板(Ctrl+Shift+P),运行Volar: Switch to Take Over Mode(不是Extension Mode) - 文件关联错误:右下角状态栏显示 “Plain Text” 或 “HTML”,需点击后选 “Vue”;或检查
files.associations是否把*.vue映射到了vue - 插件冲突:禁用
Vetur(它和Volar不共存)、Auto Rename Tag(某些版本会劫持补全) - TS 项目未启用
compilerOptions.experimentalDecorators:导致@Component类片段无法触发(Vue 2 项目才需关注)
最易被忽略的一点:Volar 的 snippet 功能默认依赖你当前打开的是 .vue 文件,且该文件已被识别为 Vue 模式——哪怕只是多了一个空格没保存,右下角没显示 “Vue”,所有片段都无效。










