国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

淺析Vue實(shí)例以及生命周期

2024-05-06 15:31:41
字體:
供稿:網(wǎng)友

最簡單的Vue 實(shí)例

//html<div id="app"> {{message}}</div>//javascriptvar vm = new Vue({ el: '#app', data: { message: 'Hello Vue!' }})

由于 Vue 借鑒了 MVVM 的思想,這里的字符串 "Hello Vue!" 就相當(dāng)于 Model,DOM 就相當(dāng)于 View,Vue 實(shí)例 "vm" 則是起連接 Mode 和 View 作用的 ViewModel,因此我們才得以通過數(shù)據(jù)驅(qū)動視圖,而不需要關(guān)心它是怎么實(shí)現(xiàn)的,因?yàn)?Vue 已經(jīng)幫我們做好了一切。

Vue 實(shí)例內(nèi)置的屬性和方法都是以 "$" 開頭的,例如:vm.$data、vm.$el 等,另外選項(xiàng)并不等于實(shí)例,選項(xiàng)是通過 new Vue() 構(gòu)造函數(shù)時(shí)傳入的參數(shù)對象,但是實(shí)例可以從暴露的接口訪問某些選項(xiàng)的值,例如:console.log(vm.$data.message) 輸出 "Hello Vue!"。

實(shí)例的生命周期

在創(chuàng)建實(shí)例的過程中,Vue 提供了一些生命周期鉤子函數(shù),允許我們再某一特定階段執(zhí)行一些額外的操作:

beforeCreate:

在實(shí)例初始化之后,數(shù)據(jù)綁定之前會調(diào)用這個(gè)函數(shù),例如:

//javascriptvar vm = new Vue({ el: '#app', data: {  message: 'Hello Vue!' }, beforeCreate: function() {  console.log(this.message); //undefind }})

需要說明的有兩點(diǎn):1、這里的 "this" 指向 Vue 實(shí)例,即 "vm",2、Vue 實(shí)例同時(shí)也代理了選項(xiàng)中 "data" 下的所有屬性,也就是說 vm.message == vm.$data.message == "Hello Vue!",但是因?yàn)樵谶@個(gè)階段數(shù)據(jù)并沒有綁定到 Vun 實(shí)例上面,所以輸出 "undefind"。在這之前數(shù)據(jù)會先保存在 vm.$options 中,如果要在這個(gè)階段獲取數(shù)據(jù),可以先通過 vm.$options.data() 方法,返回 "data" 對象,通過 vm.$options.data().message 返回對應(yīng)的值。
在這個(gè)階段可以做一些不需要數(shù)據(jù)的工作,比如說開啟全局 loading 效果。

created:

在實(shí)例創(chuàng)建完成,數(shù)據(jù)綁定之后會調(diào)用這個(gè)函數(shù),此時(shí) console.log(this.message) 輸出正確的值 "Hello Vue!"。
在這個(gè)階段,數(shù)據(jù)已經(jīng)初始化為選項(xiàng)中的默認(rèn)值,但是真實(shí)的數(shù)據(jù)還要通過 ajax 從后端數(shù)據(jù)庫獲取,因此這個(gè)階段可以向后端發(fā)請求獲取數(shù)據(jù),然后綁定到對應(yīng)屬性上。

之后判斷選項(xiàng)中有無 "el" 屬性(作為 Vue 實(shí)例的掛載目標(biāo),在這里就是 id 為 app 的 div 標(biāo)簽),如果沒有,則需要手動調(diào)用 vm.$mount(el) 方法指定掛載的目標(biāo);

接著判斷選項(xiàng)中有無 "template" 屬性,如果沒有,則直接使用 "el" 屬性指定的掛載目標(biāo),如果有,那么就用 "template" 屬性指定的字符串模板替換掛載目標(biāo),掛載目標(biāo)中的所有內(nèi)容將被忽略;

beforeMount:

在實(shí)例掛載之前調(diào)用。

在這個(gè)階段可以移除全局 loading 效果。

mounted:

在實(shí)例掛載之后調(diào)用。

在這個(gè)階段頁面已經(jīng)加載完畢,可以對 DOM 進(jìn)行操作。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 龙陵县| 涿州市| 铅山县| 本溪市| 巴林左旗| 缙云县| 扎囊县| 六安市| 抚顺县| 新宁县| 博罗县| 兴宁市| 灵石县| 七台河市| 格尔木市| 新津县| 交口县| 旬邑县| 莱西市| 平安县| 秦皇岛市| 阜新市| 兴安县| 阿拉尔市| 通州区| 寻乌县| 和平县| 武义县| 赣州市| 太谷县| 安顺市| 剑阁县| 新泰市| 湘潭县| 四子王旗| 洪雅县| 都匀市| 大竹县| 噶尔县| 凤庆县| 嘉祥县|