欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2018年08月14日 09:01:12   作者:沉江、小魚(yú)  
這篇文章給大家分享了Vue實(shí)例以及生命周期的相關(guān)知識(shí)點(diǎn)內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。

最簡(jiǎn)單的Vue 實(shí)例

//html
<div id="app">
 {{message}}
</div>

//javascript
var 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,因此我們才得以通過(guò)數(shù)據(jù)驅(qū)動(dòng)視圖,而不需要關(guān)心它是怎么實(shí)現(xiàn)的,因?yàn)?Vue 已經(jīng)幫我們做好了一切。

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

實(shí)例的生命周期

在創(chuàng)建實(shí)例的過(guò)程中,Vue 提供了一些生命周期鉤子函數(shù),允許我們?cè)倌骋惶囟A段執(zhí)行一些額外的操作:

beforeCreate:

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

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

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

created:

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

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

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

beforeMount:

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

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

mounted:

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

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

beforeUpdate:

在數(shù)據(jù)更新時(shí)調(diào)用。

在這個(gè)階段可以在數(shù)據(jù)更新前訪(fǎng)問(wèn)現(xiàn)有的 DOM。

updated:

在數(shù)據(jù)更新之后調(diào)用。

在這個(gè)階段可以對(duì)更新后的 DOM 進(jìn)行操作。

相關(guān)文章

  • Vue3+Ts實(shí)現(xiàn)緩存功能的示例代碼

    Vue3+Ts實(shí)現(xiàn)緩存功能的示例代碼

    這篇文章主要為大家詳細(xì)介紹了Vue3+Ts如何實(shí)現(xiàn)緩存,用戶(hù)搜索詞本地排名,延遲消費(fèi)或者消息隊(duì)列,用戶(hù)簽到和鎖,以及接口限流,還有全局ID等功能,需要的可以參考下
    2024-03-03
  • 前端vue項(xiàng)目如何使用Decimal.js做加減乘除求余運(yùn)算

    前端vue項(xiàng)目如何使用Decimal.js做加減乘除求余運(yùn)算

    decimal.js是使用的二進(jìn)制來(lái)計(jì)算的,可以更好地實(shí)現(xiàn)格化式數(shù)學(xué)運(yùn)算,對(duì)數(shù)字進(jìn)行高精度處理,使用decimal類(lèi)型處理數(shù)據(jù)可以保證數(shù)據(jù)計(jì)算更為精確,這篇文章主要給大家介紹了關(guān)于前端vue項(xiàng)目如何使用Decimal.js做加減乘除求余運(yùn)算的相關(guān)資料,需要的朋友可以參考下
    2024-05-05
  • 應(yīng)用provide與inject刷新Vue頁(yè)面方法

    應(yīng)用provide與inject刷新Vue頁(yè)面方法

    這篇文章主要介紹了應(yīng)用provide與inject刷新Vue頁(yè)面的兩種方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,多多進(jìn)步,祝大家早日升職加薪
    2021-09-09
  • 在vue中使用eslint,配合vscode的操作

    在vue中使用eslint,配合vscode的操作

    這篇文章主要介紹了在vue中使用eslint,配合vscode的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-11-11
  • vue請(qǐng)求后端數(shù)據(jù)和跨域問(wèn)題解決

    vue請(qǐng)求后端數(shù)據(jù)和跨域問(wèn)題解決

    這篇文章主要介紹了vue請(qǐng)求后端數(shù)據(jù)和跨域問(wèn)題,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-05-05
  • Vue3 異步組件 suspense使用詳解

    Vue3 異步組件 suspense使用詳解

    vue在解析我們的組件時(shí), 是通過(guò)打包成一個(gè) js 文件,當(dāng)我們的一個(gè)組件 引入過(guò)多子組件是,頁(yè)面的首屏加載時(shí)間 由最后一個(gè)組件決定 優(yōu)化的一種方式就是采用異步組件,這篇文章主要介紹了Vue3 異步組件 suspense,需要的朋友可以參考下
    2022-12-12
  • 詳解Vue項(xiàng)目部署遇到的問(wèn)題及解決方案

    詳解Vue項(xiàng)目部署遇到的問(wèn)題及解決方案

    這篇文章主要介紹了詳解Vue項(xiàng)目部署遇到的問(wèn)題及解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-01-01
  • 詳解Vue3中如何使用動(dòng)態(tài)組件

    詳解Vue3中如何使用動(dòng)態(tài)組件

    在?Vue?3?中,動(dòng)態(tài)組件是一種允許在運(yùn)行時(shí)動(dòng)態(tài)切換組件的機(jī)制,本文主要為大家詳細(xì)介紹了動(dòng)態(tài)組件在Vue3中的具體使用,感興趣的小伙伴可以了解下
    2024-01-01
  • Vue.js實(shí)現(xiàn)網(wǎng)格列表布局轉(zhuǎn)換方法

    Vue.js實(shí)現(xiàn)網(wǎng)格列表布局轉(zhuǎn)換方法

    下面小編就為大家?guī)?lái)一篇Vue.js實(shí)現(xiàn)網(wǎng)格列表布局轉(zhuǎn)換方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-08-08
  • Vue electron前端開(kāi)啟局域網(wǎng)接口實(shí)現(xiàn)流程詳細(xì)介紹

    Vue electron前端開(kāi)啟局域網(wǎng)接口實(shí)現(xiàn)流程詳細(xì)介紹

    用electron寫(xiě)了一個(gè)自己用的小軟件,無(wú)后端,純本地的數(shù)據(jù)。最近想著開(kāi)發(fā)一個(gè)手機(jī)端app,將PC端的數(shù)據(jù)進(jìn)行同步。為了這小小的功能單獨(dú)寫(xiě)個(gè)后端又麻煩。干脆前后端不分離哈哈,直接在前端軟件中開(kāi)啟接口
    2022-10-10

最新評(píng)論