|
| 1 | +# Vue VSCode 代码片段 |
| 2 | + |
| 3 | + |
| 4 | + |
| 5 | +## 描述 |
| 6 | + |
| 7 | +这些代码片段旨在以最无缝的方式提升您的工作流程。 |
| 8 | + |
| 9 | +这个仓库特别为实际使用场景而构建。它不记录API定义,而是从实际使用的角度关注开发者的使用体验。包含了我个人厌倦重复输入的内容,以及有助于快速搭建的样板代码。 |
| 10 | + |
| 11 | +_支持的版本:Vue 2 和 Vue 3_ |
| 12 | + |
| 13 | + |
| 14 | + |
| 15 | +## 安装 |
| 16 | + |
| 17 | +_方法一_ |
| 18 | + |
| 19 | +- 点击扩展按钮(编辑器中最下方的方块图标),搜索 "Vue VSCode Snippets",选择由 sdras 提供的扩展 |
| 20 | + |
| 21 | +_方法二_ |
| 22 | + |
| 23 | +- 访问 [VSCode 扩展市场](https://marketplace.visualstudio.com/items?itemName=sdras.vue-vscode-snippets) |
| 24 | + |
| 25 | +```javascript |
| 26 | +ext install Vue VSCode Snippets |
| 27 | +``` |
| 28 | + |
| 29 | +您可以启用Tab键补全(推荐),通过打开 `Code > Preferences > Settings`(在Mac上)并在您的个人设置中添加 `"editor.tabCompletion": "onlySnippets"` |
| 30 | + |
| 31 | +## 代码片段 |
| 32 | + |
| 33 | +### Vue 组件基础 |
| 34 | + |
| 35 | +这些代码片段旨在为您的单文件组件(SFC)提供基础脚手架。 |
| 36 | + |
| 37 | +| 代码片段 | 用途 | |
| 38 | +| ----------------- | ---------------------------------------- | |
| 39 | +| `vbase-3-ss` | 使用 script setup 的 SFC 基础模板 | |
| 40 | +| `vbase-3-ss-ts` | 使用 script setup 和 TypeScript 的 SFC 基础模板 | |
| 41 | +| `vbase` | 使用 SCSS 的 SFC 基础模板 | |
| 42 | +| `vbase-3` | 使用 Composition API 和 SCSS 的 SFC 模板 | |
| 43 | +| `vbase-3-setup` | 使用 setup Composition API 和 SCSS 的 SFC 模板 | |
| 44 | +| `vbase-3-reactive`| 使用 Composition API、Reactive 和 SCSS 的 SFC 模板 | |
| 45 | +| `vbase-css` | 使用 CSS 的 SFC 基础模板 | |
| 46 | +| `vbase-pcss` | 使用 PostCSS 的 SFC 基础模板 | |
| 47 | +| `vbase-styl` | 使用 Stylus 的 SFC 基础模板 | |
| 48 | +| `vbase-ts` | 使用 TypeScript 的 SFC 基础模板 | |
| 49 | +| `vbase-ts-class` | 使用 TypeScript 类格式的 SFC 基础模板 | |
| 50 | +| `vbase-3-ts` | 使用 Composition API 和 TypeScript 的 SFC 模板 | |
| 51 | +| `vbase-3-ts-setup`| 使用 setup Composition API 和 TypeScript 的 SFC 模板 | |
| 52 | +| `vbase-ns` | 无样式的 SFC 模板 | |
| 53 | +| `vbase-sass` | 使用 SASS 的 SFC 基础模板 | |
| 54 | +| `vbase-less` | 使用 LESS 的 SFC 基础模板 | |
| 55 | + |
| 56 | +### 模板相关 |
| 57 | + |
| 58 | +| 代码片段 | 用途 | |
| 59 | +| ----------------- | -------------------------------- | |
| 60 | +| `vfor` | v-for 指令 | |
| 61 | +| `vmodel` | 语义化的 v-model 指令 | |
| 62 | +| `vmodel-num` | 语义化的 v-model 数字指令 | |
| 63 | +| `von` | v-on 点击处理函数(带参数) | |
| 64 | +| `vslot-named` | 具名插槽 | |
| 65 | +| `vel-props` | 带 props 的组件元素 | |
| 66 | +| `vsrc` | 图片 src 绑定 | |
| 67 | +| `vstyle` | 内联样式绑定 | |
| 68 | +| `vstyle-obj` | 使用对象的 inline style 绑定 | |
| 69 | +| `vclass` | 类绑定 | |
| 70 | +| `vclass-obj` | 使用对象的类绑定 | |
| 71 | +| `vclass-obj-mult` | 多条件类绑定 | |
| 72 | +| `vanim` | 带 JS 钩子的 Transition 组件 | |
| 73 | +| `vnuxtl` | Nuxt 路由链接 | |
| 74 | +| `vroutename` | router-link 命名路由 | |
| 75 | +| `vroutenameparam` | router-link 带参数的命名路由 | |
| 76 | +| `vroutepath` | router-link 路径路由链接 | |
| 77 | +| `vemit-child` | 从子组件发出事件 | |
| 78 | +| `vemit-parent` | 向父组件发出事件 | |
| 79 | + |
| 80 | +### 脚本相关 |
| 81 | + |
| 82 | +| 代码片段 | 用途 | |
| 83 | +| ----------------- | ----------------------------------------------------------------- | |
| 84 | +| `vdata` | 组件数据函数 | |
| 85 | +| `vmethod` | Vue 方法 | |
| 86 | +| `vcomputed` | Vue 计算属性 | |
| 87 | +| `vwatcher` | Vue 监听器(带新旧值参数) | |
| 88 | +| `vbeforecreate` | beforeCreate 生命周期方法 | |
| 89 | +| `vcreated` | created 生命周期方法 | |
| 90 | +| `vbeforemount` | beforeMount 生命周期方法 | |
| 91 | +| `vmounted` | mounted 生命周期方法 | |
| 92 | +| `vbeforeupdate` | beforeUpdate 生命周期方法 | |
| 93 | +| `vupdated` | updated 生命周期方法 | |
| 94 | +| `vbeforedestroy` | beforeDestroy 生命周期方法 | |
| 95 | +| `vdestroyed` | destroyed 生命周期方法 | |
| 96 | +| `vprops` | 带类型和默认值的 props | |
| 97 | +| `vimport` | 导入一个组件到另一个组件中 | |
| 98 | +| `vimport-dynamic` | 导入一个应该由 webpack 懒加载的组件 | |
| 99 | +| `vcomponents` | 在 export 语句中导入一个组件到另一个组件中 | |
| 100 | +| `vimport-export` | 导入一个组件并在 export 语句中使用它 | |
| 101 | +| `vmapstate` | 从 Vuex 导入 mapState 到 Vue 组件 | |
| 102 | +| `vmapgetters` | 从 Vuex 导入 mapGetters 到 Vue 组件 | |
| 103 | +| `vmapmutations` | 从 Vuex 导入 mapMutations 到 Vue 组件 | |
| 104 | +| `vmapactions` | 从 Vuex 导入 mapActions 到 Vue 组件 | |
| 105 | +| `vfilter` | Vue 过滤器 | |
| 106 | +| `vmixin` | 创建 Vue Mixin | |
| 107 | +| `vmixin-use` | 引入 mixin 到组件中使用 | |
| 108 | +| `vc-direct` | 创建自定义指令 | |
| 109 | +| `vimport-lib` | 导入库 | |
| 110 | +| `vimport-gsap` | 导入 GreenSock | |
| 111 | +| `vanimhook-js` | 在方法中使用 Transition 组件的 JS 钩子 | |
| 112 | +| `vcommit` | 在方法中提交到 Vuex store(mutation) | |
| 113 | +| `vdispatch` | 在方法中分发到 Vuex store(action) | |
| 114 | +| `vtest` | 简单的单元测试组件 | |
| 115 | + |
| 116 | +### Vue Composition API |
| 117 | + |
| 118 | +| 代码片段 | 用途 | |
| 119 | +| ------------------- | -------------------------------------------------- | |
| 120 | +| `v3reactive` | Vue Composition API - reactive | |
| 121 | +| `v3reactive-setup` | Vue Composition API - reactive 带 setup 样板代码 | |
| 122 | +| `v3computed` | Vue Composition API - computed | |
| 123 | +| `v3watch` | Vue Composition API - 监听单个源 | |
| 124 | +| `v3watch-array` | Vue Composition API - 数组形式的 watch | |
| 125 | +| `v3watcheffect` | Vue Composition API - watchEffect | |
| 126 | +| `v3ref` | Vue Ref | |
| 127 | +| `v3onmounted` | 生命周期钩子 - onMounted | |
| 128 | +| `v3onbeforemount` | 生命周期钩子 - onBeforeMount | |
| 129 | +| `v3onbeforeupdate` | 生命周期钩子 - onBeforeUpdate | |
| 130 | +| `v3onupdated` | 生命周期钩子 - onUpdated | |
| 131 | +| `v3onerrorcaptured` | 生命周期钩子 - onErrorCaptured | |
| 132 | +| `v3onunmounted` | 生命周期钩子 - (destroyed) onUnmounted | |
| 133 | +| `v3onbeforeunmount` | 生命周期钩子 - (beforeDestroy) onBeforeUnmount | |
| 134 | +| `v3useinoptions` | 在 Options API 中使用 Composition API | |
| 135 | + |
| 136 | +### Vuex |
| 137 | + |
| 138 | +| 代码片段 | 用途 | |
| 139 | +| --------------- | --------------------------- | |
| 140 | +| `vstore` | Vuex store.js 基础模板 | |
| 141 | +| `vgetter` | Vuex Getter | |
| 142 | +| `vmutation` | Vuex Mutation | |
| 143 | +| `vaction` | Vuex Action | |
| 144 | +| `vmodule` | Vuex Module | |
| 145 | +| `vstore-import` | 导入 vuex store 到 main.js | |
| 146 | +| `vstore2` | 更新的 Vuex store 基础模板 | |
| 147 | + |
| 148 | +### Vue Router |
| 149 | + |
| 150 | +| 代码片段 | 用途 | |
| 151 | +| -------------------- | ------------------------------------------ | |
| 152 | +| `vrouter` | Vue Router 基础模板 | |
| 153 | +| `vscrollbehavior` | Vue Router scrollBehavior | |
| 154 | +| `vbeforeeach` | Vue Router 全局守卫 beforeEach | |
| 155 | +| `vbeforeresolve` | Vue Router 全局守卫 beforeResolve | |
| 156 | +| `vaftereach` | Vue Router 全局守卫 afterEach | |
| 157 | +| `vbeforeenter` | Vue Router 路由独享守卫 beforeEnter | |
| 158 | +| `vbeforerouteenter` | Vue Router 组件内守卫 beforeRouteEnter | |
| 159 | +| `vbeforerouteupdate` | Vue Router 组件内守卫 beforeRouteUpdate | |
| 160 | +| `vbeforerouteleave` | Vue Router 组件内守卫 beforeRouteLeave | |
| 161 | + |
| 162 | +### Vue 配置 |
| 163 | + |
| 164 | +| 代码片段 | 用途 | |
| 165 | +| --------- | ------------------------------------------------------------------ | |
| 166 | +| `vplugin` | 导入插件到 main.js 或 plugins 文件 | |
| 167 | +| `vconfig` | vue.config.js 文件,示例:将 sass 文件导入到每个组件 | |
| 168 | + |
| 169 | +### Nuxt 配置 |
| 170 | + |
| 171 | +| 代码片段 | 用途 | |
| 172 | +| ------- | ---------------------------------------------------- | |
| 173 | +| `nfont` | 在 nuxt-config 中包含字体的链接 | |
| 174 | +| `ncss` | 链接到 CSS 资源,如 normalize | |
| 175 | + |
| 176 | +### Nuxt 页面 |
| 177 | + |
| 178 | +| 代码片段 | 用途 | |
| 179 | +| ----------------- | ----------------------------- | |
| 180 | +| `nasyncdata` | Nuxt asyncData | |
| 181 | +| `nasyncdataaxios` | 使用 Axios 模块的 Nuxt asyncData | |
| 182 | +| `nfetch` | Nuxt Fetch | |
| 183 | +| `nfetchaxios` | 使用 Axios 模块的 Nuxt Fetch | |
| 184 | +| `nhead` | Nuxt Head | |
| 185 | +| `nparam` | Nuxt 路由参数 | |
| 186 | + |
| 187 | +### 额外功能(纯文本) |
| 188 | + |
| 189 | +| 代码片段 | 用途 | |
| 190 | +| ----------- | -------------------- | |
| 191 | +| `gitignore` | .gitignore 文件预设 | |
| 192 | + |
| 193 | +## 贡献 |
| 194 | + |
| 195 | +这是一个向任何人开放的开源项目。欢迎贡献 [GitHub](https://github.com/sdras/vue-vscode-snippets) |
| 196 | + |
| 197 | +如果您要贡献代码片段,请确保在 README 的表格中添加相应的文档,没有此添加的拉取请求将无法被接受。谢谢! |
| 198 | + |
| 199 | +## 许可证 |
| 200 | + |
| 201 | +MIT License - 详见 [LICENSE](LICENSE) 文件 |
| 202 | + |
| 203 | +## 作者 |
| 204 | + |
| 205 | +Sarah Drasner ([@sarah_edo](https://twitter.com/sarah_edo)) |
| 206 | + |
| 207 | +## 支持 |
| 208 | + |
| 209 | +如果您在使用过程中遇到问题或有任何建议,请通过以下方式联系: |
| 210 | + |
| 211 | +- 在 [GitHub Issues](https://github.com/sdras/vue-vscode-snippets/issues) 中提交问题 |
| 212 | +- 通过 Twitter [@sarah_edo](https://twitter.com/sarah_edo) 联系作者 |
| 213 | + |
| 214 | +## 版本信息 |
| 215 | + |
| 216 | +当前版本:3.2.0 |
| 217 | + |
| 218 | +最后更新:2025-09-21 |
0 commit comments