最近在使用VSCODE 開發VUE項目,以下是如何生成VUE文件模板的做法。
第一步
打開vscode, 文件-首選項-用戶代碼片段,選擇代碼片段文件或創建代碼片段,選擇或新建vue.json

第二步
在代碼片段內輸入如下內容,
- 其中
${1:功能描述}是光標第一個焦點的位置 $CURRENT_YEAR等顯示日期信息- 雙引號需要斜杠轉義
- 《script》和《/script》 需要替換
{
// Place your snippets for vue here. Each snippet is defined under a snippet name and has a prefix, body and
// description. The prefix is what is used to trigger the snippet and the body will be expanded and inserted. Possible variables are:
// $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders. Placeholders with the
// same ids are connected.
// Example:
// "Print to console": {
// "prefix": "log",
// "body": [
// "console.log('$1');",
// "$2"
// ],
// "description": "Log output to console"
// }
"Print to console": {
"prefix": "vue",
"body": [
"<!--",
" 功能:${1:功能描述}",
" 作者:missfox",
" 郵箱:missfoxw@163.com",
" 時間:$CURRENT_YEAR年$CURRENT_MONTH月$CURRENT_DATE日 $CURRENT_HOUR:$CURRENT_MINUTE:$CURRENT_SECOND",
" 版本:v1.0",
" 修改記錄:",
" 修改內容:",
" 修改人員:",
" 修改時間:",
"-->",
"<template>",
"</template>",
"",
"《script》",
"export default {",
" // 組件名稱",
" name: 'demo',",
" // 組件參數 接收來自父組件的數據",
" props: {},",
" // 局部注冊的組件",
" components: {},",
" // 組件狀態值",
" data () {",
" return {}",
" },",
" // 計算屬性",
" computed: {},",
" // 偵聽器",
" watch: {},",
" // 組件方法",
" methods: {},",
" // 以下是生命周期鈎子 注:沒用到的鈎子請自行刪除",
" /**",
" * 在實例初始化之后,組件屬性計算之前,如data屬性等",
" */",
" beforeCreate () {",
" },",
" /**",
" * 組件實例創建完成,屬性已綁定,但DOM還未生成,$ el屬性還不存在",
" */",
" created () {",
" },",
" /**",
" * 在掛載開始之前被調用:相關的 render 函數首次被調用。",
" */",
" beforeMount () {",
" },",
" /**",
" * el 被新創建的 vm.$ el 替換,並掛載到實例上去之后調用該鈎子。",
" * 如果 root 實例掛載了一個文檔內元素,當 mounted 被調用時 vm.$ el 也在文檔內。",
" */",
" mounted () {",
" },",
" /**",
" * 數據更新時調用,發生在虛擬 DOM 重新渲染和打補丁之前。",
" * 你可以在這個鈎子中進一步地更改狀態,這不會觸發附加的重渲染過程。",
" */",
" beforeUpdate () {",
" },",
" /**",
" * 由於數據更改導致的虛擬 DOM 重新渲染和打補丁,在這之后會調用該鈎子。",
" * 當這個鈎子被調用時,組件 DOM 已經更新,所以你現在可以執行依賴於 DOM 的操作。",
" */",
" updated () {",
" },",
" /**",
" * keep-alive 組件激活時調用。 僅針對keep-alive 組件有效",
" */",
" activated () {",
" },",
" /**",
" * keep-alive 組件停用時調用。 僅針對keep-alive 組件有效",
" */",
" deactivated () {",
" },",
" /**",
" * 實例銷毀之前調用。在這一步,實例仍然完全可用。",
" */",
" beforeDestroy () {",
" },",
" /**",
" * Vue 實例銷毀后調用。調用后,Vue 實例指示的所有東西都會解綁定,",
" * 所有的事件監聽器會被移除,所有的子實例也會被銷毀。",
" */",
" destroyed () {",
" }",
"}",
"《/script》 ",
"",
"<!-- Add \"scoped\" attribute to limit CSS to this component only -->",
"<!--使用了scoped屬性之后,父組件的style樣式將不會滲透到子組件中,-->",
"<!--然而子組件的根節點元素會同時被設置了scoped的父css樣式和設置了scoped的子css樣式影響,-->",
"<!--這么設計的目的是父組件可以對子組件根元素進行布局。-->",
"<style scoped>",
"",
"</style>",
"$2"
],
"description": "Log output to console"
}
}
第三步
在vscode里新建一個vue文件,在文件空白處輸入vue ,按 Tab 鍵,即可生成完整的模板,

最終的內容樣例如下:
<!--
功能:功能描述
作者:missfox
郵箱:missfoxw@163.com
時間:2019年08月07日 15:15:04
版本:v1.0
修改記錄:
修改內容:
修改人員:
修改時間:
-->
<template>
</template>
《script》
export default {
// 組件名稱
name: 'demo',
// 組件參數 接收來自父組件的數據
props: {},
// 局部注冊的組件
components: {},
// 組件狀態值
data () {
return {}
},
// 計算屬性
computed: {},
// 偵聽器
watch: {},
// 組件方法
methods: {},
// 以下是生命周期鈎子 注:沒用到的鈎子請自行刪除
/**
* 在實例初始化之后,組件屬性計算之前,如data屬性等
*/
beforeCreate () {
},
/**
* 組件實例創建完成,屬性已綁定,但DOM還未生成,$ el屬性還不存在
*/
created () {
},
/**
* 在掛載開始之前被調用:相關的 render 函數首次被調用。
*/
beforeMount () {
},
/**
* el 被新創建的 vm.$ el 替換,並掛載到實例上去之后調用該鈎子。
* 如果 root 實例掛載了一個文檔內元素,當 mounted 被調用時 vm.$ el 也在文檔內。
*/
mounted () {
},
/**
* 數據更新時調用,發生在虛擬 DOM 重新渲染和打補丁之前。
* 你可以在這個鈎子中進一步地更改狀態,這不會觸發附加的重渲染過程。
*/
beforeUpdate () {
},
/**
* 由於數據更改導致的虛擬 DOM 重新渲染和打補丁,在這之后會調用該鈎子。
* 當這個鈎子被調用時,組件 DOM 已經更新,所以你現在可以執行依賴於 DOM 的操作。
*/
updated () {
},
/**
* keep-alive 組件激活時調用。 僅針對keep-alive 組件有效
*/
activated () {
},
/**
* keep-alive 組件停用時調用。 僅針對keep-alive 組件有效
*/
deactivated () {
},
/**
* 實例銷毀之前調用。在這一步,實例仍然完全可用。
*/
beforeDestroy () {
},
/**
* Vue 實例銷毀后調用。調用后,Vue 實例指示的所有東西都會解綁定,
* 所有的事件監聽器會被移除,所有的子實例也會被銷毀。
*/
destroyed () {
}
}
《/script》
<!-- Add "scoped" attribute to limit CSS to this component only -->
<!--使用了scoped屬性之后,父組件的style樣式將不會滲透到子組件中,-->
<!--然而子組件的根節點元素會同時被設置了scoped的父css樣式和設置了scoped的子css樣式影響,-->
<!--這么設計的目的是父組件可以對子組件根元素進行布局。-->
<style scoped>
</style>
