7
7
![ TypeScript] ( https://img.shields.io/badge/typescript-%23007ACC.svg?style=for-the-badge&logo=typescript&logoColor=white )
8
8
9
9
## Features
10
- - Only the latest Vue syntax (including [ Reactivity Transform ] ( https://vuejs.org/guide/extras/reactivity-transform.html ) )
10
+ - Only the latest Vue syntax
11
11
- Over ** 200** snippets
12
12
- TypeScript-first
13
13
- Nuxt 3, Pinia, VueUse, Vue Router & Vue Macros support
74
74
75
75
<tr >
76
76
<td ><code >vbase:full</code ></td >
77
- <td >Vue SFC with style</td >
77
+ <td >Vue SFC with style | postcss </td >
78
78
<td >
79
79
80
80
``` html
86
86
$1
87
87
</template >
88
88
89
- <style scoped >
89
+ <style lang = " postcss " scoped >
90
90
91
91
</style >
92
92
96
96
</tr >
97
97
98
98
<tr >
99
- <td ><code >vbase:full:postcss </code ></td >
100
- <td >Vue SFC with style | postcss </td >
99
+ <td ><code >vbase:full:css </code ></td >
100
+ <td >Vue SFC with style | css </td >
101
101
<td >
102
102
103
103
``` html
109
109
$1
110
110
</template >
111
111
112
- <style style = " postcss " scoped >
112
+ <style lang = " css " scoped >
113
113
114
114
</style >
115
115
132
132
$1
133
133
</template >
134
134
135
- <style style =" scss " scoped >
135
+ <style lang =" scss" scoped >
136
136
137
137
</style >
138
138
155
155
$1
156
156
</template >
157
157
158
- <style style =" less " scoped >
158
+ <style lang =" less" scoped >
159
159
160
160
</style >
161
161
211
211
212
212
<tr >
213
213
<td ><code >vstyle</code ></td >
214
- <td >Vue scoped style</td >
214
+ <td >Vue scoped style | postcss </td >
215
215
<td >
216
216
217
217
``` html
218
- <style scoped >
218
+ <style lang = " postcss " scoped >
219
219
$0
220
220
</style >
221
221
240
240
</tr >
241
241
242
242
<tr >
243
- <td ><code >vstyle:postcss </code ></td >
244
- <td >Vue scoped style | postcss </td >
243
+ <td ><code >vstyle:css </code ></td >
244
+ <td >Vue scoped style | css </td >
245
245
<td >
246
246
247
247
``` html
248
- <style lang =" postcss " scoped >
248
+ <style lang =" css " scoped >
249
249
$0
250
250
</style >
251
251
@@ -663,6 +663,30 @@ v-bind="$1"
663
663
</td >
664
664
</tr >
665
665
666
+ <tr >
667
+ <td ><code >vbind:attrs</code ></td >
668
+ <td >v-bind attrs</td >
669
+ <td >
670
+
671
+ ``` html
672
+ v-bind="\$attrs"
673
+ ```
674
+
675
+ </td >
676
+ </tr >
677
+
678
+ <tr >
679
+ <td ><code >vbind:props</code ></td >
680
+ <td >v-bind props</td >
681
+ <td >
682
+
683
+ ``` html
684
+ v-bind="\$props"
685
+ ```
686
+
687
+ </td >
688
+ </tr >
689
+
666
690
<tr >
667
691
<td ><code >vmodel</code ></td >
668
692
<td >v-model</td >
@@ -825,7 +849,7 @@ ${1|is,:is|}="$2"
825
849
<td >
826
850
827
851
``` html
828
- :${1:prop}="$2 "
852
+ :${1:prop}="${2:$1} "
829
853
```
830
854
831
855
</td >
@@ -1284,6 +1308,34 @@ watch([${1:source1}, ${2:source2}], ([new${1/(.*)/${1:/capitalize}/}, new${2/(.*
1284
1308
</td>
1285
1309
</tr>
1286
1310
1311
+ <tr>
1312
+ <td><code>vwatch:immediate</code></td>
1313
+ <td>Vue watch immediate</td>
1314
+ <td>
1315
+
1316
+ ` ` ` javascript
1317
+ watch (${1 : source}, ($ {2 : val}) => {
1318
+ $0
1319
+ }, { immediate: true })
1320
+ ` ` `
1321
+
1322
+ </td>
1323
+ </tr>
1324
+
1325
+ <tr>
1326
+ <td><code>vwatch:deep</code></td>
1327
+ <td>Vue watch deep</td>
1328
+ <td>
1329
+
1330
+ ` ` ` javascript
1331
+ watch (${1 : source}, ($ {2 : val}) => {
1332
+ $0
1333
+ }, { deep: true })
1334
+ ` ` `
1335
+
1336
+ </td>
1337
+ </tr>
1338
+
1287
1339
<tr>
1288
1340
<td><code>vwatch:log</code></td>
1289
1341
<td>Vue watch source | log</td>
@@ -1350,6 +1402,32 @@ ${1:const emit = }defineEmits<{
1350
1402
</td>
1351
1403
</tr>
1352
1404
1405
+ <tr>
1406
+ <td><code>vemits:new</code></td>
1407
+ <td>Vue defineEmits (new syntax)</td>
1408
+ <td>
1409
+
1410
+ ` ` ` javascript
1411
+ ${1 : const emit = }defineEmits< {
1412
+ ${2 : click}: [${3 : payload}: ${4 : string}],$5
1413
+ }> ()
1414
+ ` ` `
1415
+
1416
+ </td>
1417
+ </tr>
1418
+
1419
+ <tr>
1420
+ <td><code>vmodel</code></td>
1421
+ <td>Vue defineModel</td>
1422
+ <td>
1423
+
1424
+ ` ` ` javascript
1425
+ const $ {1:modelValue } = defineModel< ${2 : string}> ($3)
1426
+ ` ` `
1427
+
1428
+ </td>
1429
+ </tr>
1430
+
1353
1431
<tr>
1354
1432
<td><code>vemit</code></td>
1355
1433
<td>Vue emit event</td>
@@ -1508,7 +1586,19 @@ onDeactivated(() => {
1508
1586
<td>
1509
1587
1510
1588
` ` ` javascript
1511
- provide (${1 : name}, ${2 : value})
1589
+ provide (${1 : key}, ${2 : value})
1590
+ ` ` `
1591
+
1592
+ </td>
1593
+ </tr>
1594
+
1595
+ <tr>
1596
+ <td><code>vprovide:ts</code></td>
1597
+ <td>Vue provide (typed)</td>
1598
+ <td>
1599
+
1600
+ ` ` ` javascript
1601
+ provide< ${1 : string}> (${2 : key}, ${3 : value})
1512
1602
` ` `
1513
1603
1514
1604
</td>
@@ -1520,19 +1610,19 @@ provide(${1:name}, ${2:value})
1520
1610
<td>
1521
1611
1522
1612
` ` ` javascript
1523
- const $1 = inject (${2 : key}, ${ 3 : defaultValue })
1613
+ const $ {1: value } = inject (${2 : key})
1524
1614
` ` `
1525
1615
1526
1616
</td>
1527
1617
</tr>
1528
1618
1529
1619
<tr>
1530
- <td><code>vprovide:ts </code></td>
1531
- <td>Vue provide (typed) </td>
1620
+ <td><code>vinject:default </code></td>
1621
+ <td>Vue inject with default </td>
1532
1622
<td>
1533
1623
1534
1624
` ` ` javascript
1535
- provide < ${1 : string} > (${2 : name }, ${3 : value })
1625
+ const $ {1:value } = inject (${2 : key }, ${3 : defaultValue })
1536
1626
` ` `
1537
1627
1538
1628
</td>
@@ -1544,7 +1634,7 @@ provide<${1:string}>(${2:name}, ${3:value})
1544
1634
<td>
1545
1635
1546
1636
` ` ` javascript
1547
- const $1 = inject< ${2 : string}}> (${3 : key}, ${4 : defaultValue})
1637
+ const $ {1: value } = inject< ${2 : string}}> (${3 : key}, ${4 : defaultValue})
1548
1638
` ` `
1549
1639
1550
1640
</td>
@@ -1556,7 +1646,7 @@ const $1 = inject<${2:string}}>(${3:key}, ${4:defaultValue})
1556
1646
<td>
1557
1647
1558
1648
` ` ` javascript
1559
- const $ {1:key } = Symbol () as InjectionKey< ${2 : string}>
1649
+ const $ {1:key } = Symbol (' $2 ' ) as InjectionKey< ${3 : string}>
1560
1650
` ` `
1561
1651
1562
1652
</td>
@@ -1653,8 +1743,8 @@ const { $2 } = use${1/(.*)/${1:/capitalize}/}($3)
1653
1743
</tr>
1654
1744
1655
1745
<tr>
1656
- <td><code>vmodel</code></td>
1657
- <td>Implement v-model</td>
1746
+ <td><code>vmodel:manual </code></td>
1747
+ <td>Implement v-model manually </td>
1658
1748
<td>
1659
1749
1660
1750
` ` ` javascript
@@ -1982,7 +2072,7 @@ ${1|to,:to|}="$2"
1982
2072
<td>
1983
2073
1984
2074
` ` ` javascript
1985
- import { acceptHMRUpdate , defineStore } from ' pinia'
2075
+ import { defineStore } from ' pinia'
1986
2076
1987
2077
export const use$ {1/(.*)/$ {1:/capitalize }/} = defineStore (' ${2:key}' , () => {
1988
2078
$0
@@ -1992,9 +2082,6 @@ export const use${1/(.*)/${1:/capitalize}/} = defineStore('${2:key}', () => {
1992
2082
}
1993
2083
})
1994
2084
1995
- if (import .meta.hot)
1996
- import .meta.hot.accept(acceptHMRUpdate(use${1/(.*)/${1:/capitalize }/}, import.meta.hot))
1997
-
1998
2085
` ` `
1999
2086
2000
2087
</td>
@@ -2006,7 +2093,7 @@ if (import.meta.hot)
2006
2093
<td>
2007
2094
2008
2095
` ` ` javascript
2009
- import { acceptHMRUpdate , defineStore } from ' pinia'
2096
+ import { defineStore } from ' pinia'
2010
2097
2011
2098
export const use$ {1/(.*)/$ {1:/capitalize }/} = defineStore (' ${2:key}' , {
2012
2099
state : () => ({
@@ -2020,9 +2107,6 @@ export const use${1/(.*)/${1:/capitalize}/} = defineStore('${2:key}', {
2020
2107
},
2021
2108
})
2022
2109
2023
- if (import .meta.hot)
2024
- import .meta.hot.accept(acceptHMRUpdate(use$1, import.meta.hot))
2025
-
2026
2110
` ` `
2027
2111
2028
2112
</td>
@@ -2923,15 +3007,19 @@ whenever(${1:source}, (${2:val}) => {
2923
3007
<td>
2924
3008
2925
3009
` ` ` javascript
2926
- const props = defineProps< {
2927
- ${1 : modelValue}: ${2 : string}
2928
- }> ()
3010
+ const $ {2:value } = useVModel (props, ' ${1:modelValue}' , emit)
3011
+ ` ` `
2929
3012
2930
- const emit = defineEmits< {
2931
- (e: ' update:$1' , ${3 : value}?: $2): void
2932
- }> ()
3013
+ </td>
3014
+ </tr>
3015
+
3016
+ <tr>
3017
+ <td><code>vuse:vmodels</code></td>
3018
+ <td>Implement v-model using useVModels</td>
3019
+ <td>
2933
3020
2934
- const $ {4:value } = useVModel (props, ' $1' , emit)
3021
+ ` ` ` javascript
3022
+ const { $ {1:modelValue }$2 } = useVModels (props, emit)
2935
3023
` ` `
2936
3024
2937
3025
</td>
@@ -3035,12 +3123,12 @@ const toggle${2/(.*)/${1:/capitalize}/} = useToggle($1)
3035
3123
</tr>
3036
3124
3037
3125
<tr>
3038
- <td><code>vdefineModel </code> / <code>vmacro:model</code></td>
3039
- <td>Define model </td>
3126
+ <td><code>vdefineModels </code> / <code>vmacro:model</code></td>
3127
+ <td>Define models </td>
3040
3128
<td>
3041
3129
3042
3130
` ` ` javascript
3043
- const { modelValue$2 } = defineModel < {
3131
+ const { modelValue$2 } = defineModels < {
3044
3132
modelValue: ${1 : string}
3045
3133
}> ()
3046
3134
` ` `
0 commit comments