专给 Vue 3 使用的 VS Code snippets 插件。默认使用 v3- 短前缀,覆盖 Vue 3 Composition API、SFC 宏、生命周期、模板指令、Vue Router 和 Pinia 常用写法。
这个插件的设计目标是轻量、可组合、少打扰:功能片段只生成当前代码骨架,不自动插入 import,不替你生成多余 DOM 或默认样式。
Features
- Vue SFC 默认生成最小
<script setup lang="ts">和<template>,样式通过v3-style单独插入。 - 功能片段默认不自动生成 import,可通过
v3-import、v3-import-type、v3-import-default单独插入。 v3-ref、v3-computed、v3-watch等脚本片段同时注册到 TypeScript 作用域,可在<script setup lang="ts">中触发。.vue和.ts里同名的脚本片段保持同一份内容,便于在<script setup lang="ts">和.ts文件里得到一致补全。- 所有 snippet prefix 统一为
v3-*,输入快且不容易和其它补全冲突。 - 支持
.vue和.ts:.vue:组件、核心 API、生命周期、模板、宏、Teleport、Suspense、Transition。.ts:composables、Vue Router、Pinia、InjectionKey、类型 helper。
- snippet body 使用 tabstop 和 placeholder,方便连续补全。
Usage
在 .vue 或 .ts 文件中输入 v3- 开头的前缀并选择补全即可。
示例:
<script setup lang="ts">
const count = ref(0)
</script>
<template>
<template v-if="condition">
...
</template>
</template>
推荐工作流:
- 先用
v3-import或编辑器自动导入补齐依赖。 - 在
<script setup lang="ts">中使用v3-ref、v3-computed、v3-watch等脚本片段。 - 在
<template>中使用v3-tpl-if、v3-tpl-for、v3-tpl-model等模板片段。 - 需要样式时再用
v3-style插入 scoped style。
Common Prefixes
| Prefix | Description |
|---|---|
v3-sfc |
创建最小 Vue 3 SFC |
v3-comp |
创建基础组件 |
v3-style |
插入 scoped 样式块 |
v3-import |
插入 named import |
v3-import-type |
插入 type import |
v3-import-default |
插入 default import |
v3-ref |
创建 ref 状态 |
v3-shallow-ref |
创建 shallowRef 状态 |
v3-reactive |
创建 reactive 对象 |
v3-computed |
创建 computed |
v3-watch |
创建 watch |
v3-props |
创建类型化 defineProps |
v3-emits |
创建类型化 defineEmits |
v3-model |
创建 defineModel |
v3-template-ref |
创建 useTemplateRef |
v3-composable |
创建 composable |
v3-router |
创建 useRouter 跳转 |
v3-route |
创建 useRoute 参数读取 |
v3-router-guard |
创建全局路由守卫 |
v3-pinia |
创建 Pinia setup store |
v3-pinia-refs |
使用 storeToRefs |
Snippet Policy
v3-import*是唯一会生成import ... from ...的片段。- 脚本类片段会同时注册到
.vue和.ts,确保<script setup lang="ts">里能触发。 - 模板类片段只注册到
.vue,避免在.ts文件中出现无效补全。 - 校验脚本会检查同名前缀的
.vue/.ts内容是否一致,减少维护时改漏。
Development
校验 snippets:
npm test
在 VS Code 中调试:
- 打开本项目。
- 按
F5启动 Extension Development Host。 - 在
.vue文件的<script setup lang="ts">中输入v3-ref、v3-props、v3-watch。 - 在
.vue文件的<template>中输入v3-tpl-if、v3-tpl-for。 - 在
.ts文件输入v3-composable、v3-pinia、v3-router。
Packaging
如需打包 VSIX:
npx vsce package