VsCode中使用Emmet和vue-vscode-snippets快速生成html

655 阅读3分钟

一、Emmet语法:

E 代表HTML标签。 
E#id 代表id属性。 
E.class 代表class属性。 
E[attr=foo] 代表某一个特定属性。 
E{foo} 代表标签包含的内容是foo。 
E>N 代表N是E的子元素。 
E+N 代表N是E的同级元素。 
E^N 代表N是E的上级元素。

二、Emmet基础用法

div => <div> </div>
foo => <foo> </foo>
html:5 => 将生成html5标准的包含body为空基本dom
html:xt => 生成XHTML过渡文档类型,DOCTYPEXHTML 
html:4s => 生成HTML4严格文档类型,DOCTYPEHTML 4.01 
a:mail => <a href="mailto:"></a> 
a:link => <a href="http://"></a> 
base => <base href=""> 
br => <br> 
link => <link rel="stylesheet" href=""> 
script:src => <script src=""></script> 
form:get => <form action="" method="get"></form> 
label => <label for=""></label> 
input => <input type="text"> 
inp => <input type="text" name="" id=""> 
input:hidden => <input type="hidden" name=""> input:h亦可 
input:email => <input type="email" name="" id=""> 
input:password => <input type="password" name="" id=""> 
input:checkbox => <input type="checkbox" name="" id=""> 
input:radio => <input type="radio" name="" id=""> 
select => <select name="" id=""></select>
option => <option value=""></option> 
bq => <blockquote></blockquote> 
btn => <button></button> 
btn:s => <button type="submit"></button> 
btn:r => <button type="reset"></button>

三、vue-vscode-snippets

You can enable tab completion (recommended) by opening `Code > Preferences > Settings` (on a Mac) and applying `"editor.tabCompletion": "onlySnippets"` to your personal settings

## Snippets

### Vue

| Snippet            | Purpose                                                      |
| ------------------ | ------------------------------------------------------------ |
| `vbase`            | Single file component base with SCSS                         |
| `vbase-3`          | Single File component Composition API with SCSS              |
| `vbase-3-setup`    | Single File component setup Composition API with SCSS        |
| `vbase-3-reactive` | Single File component Composition API with Reactive and SCSS |
| `vbase-css`        | Single file component base with CSS                          |
| `vbase-pcss`       | Single file component base with PostCSS                      |
| `vbase-styl`       | Single file component base with Stylus                       |
| `vbase-ts`         | Single file component base with Typescript                   |
| `vbase-ts-class`   | Single file component base with Typescript Class Format      |
| `vbase-3-ts`       | Single File component Composition API with Typescript        |
| `vbase-3-ts-setup` | Single File component setup Composition API with Typescript  |
| `vbase-ns`         | Single file component with no styles                         |
| `vbase-sass`       | Single file component base with SASS                         |
| `vbase-less`       | Single file component base with LESS                         |

### Template

| Snippet           | Purpose                             |
| ----------------- | ----------------------------------- |
| `vfor`            | v-for directive                     |
| `vmodel`          | Semantic v-model directive          |
| `vmodel-num`      | Semantic v-model number directive   |
| `von`             | v-on click handler with arguments   |
| `vslot-named`     | Named slot                          |
| `vel-props`       | Component element with props        |
| `vsrc`            | Image src binding                   |
| `vstyle`          | Inline style binding                |
| `vstyle-obj`      | Inline style binding with objects   |
| `vclass`          | Class binding                       |
| `vclass-obj`      | Class binding with objects          |
| `vclass-obj-mult` | Multiple conditional class bindings |
| `vanim`           | Transition component with JS hooks  |
| `vnuxtl`          | Nuxt Routing Link                   |
| `vroutename`      | router-link Named Routing           |
| `vroutenameparam` | router-link Named with Parameters   |
| `vroutepath`      | router-link Path Routing Link       |
| `vemit-child`     | Emit event from child component     |
| `vemit-parent`    | Emit event to parent component      |

### Script

| Snippet           | Purpose                                                                  |
| ----------------- | ------------------------------------------------------------------------ |
| `vdata`           | Component data as a function                                             |
| `vmethod`         | Vue method                                                               |
| `vcomputed`       | Vue computed property                                                    |
| `vwatcher`        | Vue watcher with new and old value args                                  |
| `vbeforecreate`   | beforeCreate lifecycle method                                            |
| `vcreated`        | created lifecycle method                                                 |
| `vbeforemount`    | beforeMount lifecycle method                                             |
| `vmounted`        | vmounted lifecycle method                                                |
| `vbeforeupdate`   | beforeUpdate lifecycle method                                            |
| `vupdated`        | updated lifecycle method                                                 |
| `vbeforedestroy`  | beforeDestroy lifecycle method                                           |
| `vdestroyed`      | destroyed lifecycle method                                               |
| `vprops`          | Props with type and default                                              |
| `vimport`         | Import one component into another                                        |
| `vimport-dynamic` | Import one component that should be lazy loaded by webpack               |
| `vcomponents`     | Import one component into another within the export statement            |
| `vimport-export`  | Import one component into another and use it within the export statement |
| `vmapstate`       | import mapState from Vuex into vue component component                   |
| `vmapgetters`     | import mapGetters from Vuex into vue component component                 |
| `vmapmutations`   | import mapMutations from Vuex into vue component component               |
| `vmapactions`     | import mapActions from Vuex into vue component component                 |
| `vfilter`         | Vue filter                                                               |
| `vmixin`          | Create a Vue Mixin                                                       |
| `vmixin-use`      | Bring a mixin into a component to use                                    |
| `vc-direct`       | Vue create a custom directive                                            |
| `vimport-lib`     | Import a library                                                         |
| `vimport-gsap`    | Import GreenSock                                                         |
| `vanimhook-js`    | Using the Transition component JS hooks in methods                       |
| `vcommit`         | Commit to Vuex store in methods for mutation                             |
| `vdispatch`       | Dispatch to Vuex store in methods for action                             |
| `vtest`           | A simple unit testing component                                          |

### Vue Composition API

| Snippet             | Purpose                                               |
| ------------------- | ----------------------------------------------------- |
| `v3reactive`        | Vue Composition API - reactive                        |
| `v3reactive-setup`  | Vue Composition API - reactive with setup boilerplate |
| `v3computed`        | Vue Composition API - computed                        |
| `v3watch`           | Vue Composition API - watcher single source           |
| `v3watch-array`     | Vue Composition API - watch as array                  |
| `v3watcheffect`     | Vue Composition API - watchEffect                     |
| `v3ref`             | Vue Ref                                               |
| `v3onmounted`       | Lifecycle hook - onMounted                            |
| `v3onbeforemount`   | Lifecycle hook - onBeforeMount                        |
| `v3onbeforeupdate`  | Lifecycle hook - onBeforeUpdate                       |
| `v3onupdated`       | Lifecycle hook - onUpdated                            |
| `v3onerrorcaptured` | Lifecycle hook - onErrorCaptured                      |
| `v3onunmounted`     | Lifecycle hook - (destroyed) onUnmounted              |
| `v3onbeforeunmount` | Lifecycle hook - (beforeDestroy) onBeforeUnmount      |
| `v3useinoptions`    | Use Composition API in Options API                    |

### Vuex

| Snippet         | Purpose                        |
| --------------- | ------------------------------ |
| `vstore`        | Base for Vuex store.js         |
| `vgetter`       | Vuex Getter                    |
| `vmutation`     | Vuex Mutation                  |
| `vaction`       | Vuex Action                    |
| `vmodule`       | Vuex Module                    |
| `vstore-import` | Import vuex store into main.js |
| `vstore2`       | Updated Base for Vuex store    |

### Vue Router

| Snippet              | Purpose                                       |
| -------------------- | --------------------------------------------- |
| `vrouter`            | Vue Router base                               |
| `vscrollbehavior`    | Vue Router scrollBehavior                     |
| `vbeforeeach`        | Vue Router global guards beforeEach           |
| `vbeforeresolve`     | Vue Router global guards beforeResolve        |
| `vaftereach`         | Vue Router global guards afterEach            |
| `vbeforeenter`       | Vue Router per-route guard beforeEnter        |
| `vbeforerouteenter`  | Vue Router component guards beforeRouteEnter  |
| `vbeforerouteupdate` | Vue Router component guards beforeRouteUpdate |
| `vbeforerouteleave`  | Vue Router component guards beforeRouteLeave  |

### Vue Config

| Snippet   | Purpose                                                              |
| --------- | -------------------------------------------------------------------- |
| `vplugin` | Import a plugin to main.js or plugins file                           |
| `vconfig` | vue.config.js file, example imports a sass file into every component |

### Nuxt Config

| Snippet | Purpose                                                 |
| ------- | ------------------------------------------------------- |
| `nfont` | link to include fonts in a nuxt project, in nuxt-config |
| `ncss`  | link to css assets such as normalize                    |

### Nuxt Page

| Snippet           | Purpose                          |
| ----------------- | -------------------------------- |
| `nasyncdata`      | Nuxt asyncData                   |
| `nasyncdataaxios` | Nuxt asyncData with Axios module |
| `nfetch`          | Nuxt Fetch                       |
| `nfetchaxios`     | Nuxt Fetch with Axios module     |
| `nhead`           | Nuxt Head                        |
| `nparam`          | Nuxt Route Params                |

### Extra (plaintext)

| Snippet     | Purpose                 |
| ----------- | ----------------------- |
| `gitignore` | .gitignore file presets |

\