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

Vue中created和mounted使用詳解

 更新時(shí)間:2024年10月12日 09:11:52   作者:Jothan Zhong  
Vue中生命周期包括多個(gè)階段,如created和mounted,每階段有特定鉤子函數(shù),生命周期與瀏覽器渲染過(guò)程密切相關(guān),了解這些可以優(yōu)化頁(yè)面渲染和數(shù)據(jù)處理,created階段適用于數(shù)據(jù)初始化,而mounted階段適合進(jìn)行DOM操作和頁(yè)面渲染后的處理

一、生命周期概念

通俗地講,生命周期即Vue實(shí)例或組件從創(chuàng)建到被消滅的一系列過(guò)程,中間的各個(gè)節(jié)點(diǎn)被稱為鉤子. vue.js中created方法是一個(gè)生命周期鉤子函數(shù),一個(gè)vue實(shí)例被生成后會(huì)調(diào)用這個(gè)函數(shù)。

一個(gè)vue實(shí)例被生成后還要綁定到某個(gè)html元素上,之后還要進(jìn)行編譯,然后再插入到document中。

每一個(gè)階段都會(huì)有一個(gè)鉤子函數(shù),方便開發(fā)者在不同階段處理不同邏輯。

一般可以在created函數(shù)中調(diào)用ajax獲取頁(yè)面初始化所需的數(shù)據(jù)。

二、瀏覽器渲染過(guò)程

要深刻理解生命周期的各個(gè)節(jié)點(diǎn),就必須了解瀏覽器的渲染過(guò)程

  • 構(gòu)建DOM樹
  • 構(gòu)建css規(guī)則樹,根據(jù)執(zhí)行順序解析js文件。
  • 構(gòu)建渲染樹Render Tree
  • 渲染樹布局layout
  • 渲染樹繪制

三、生命周期中的瀏覽器渲染

  • created:已創(chuàng)建,在模板渲染成html前調(diào)用,即通常初始化某些屬性值,然后再渲染成視圖。
  • mounted:已掛載,在模板渲染成html后調(diào)用,通常是初始化頁(yè)面完成后,再對(duì)htmldom節(jié)點(diǎn)進(jìn)行一些操作。

通常created使用的次數(shù)多,而mounted是在一些插件或組件的使用中進(jìn)行操作,比如插件chart.js的使用: var ctx = document.getElementById(ID);通常會(huì)有這一步,而如果你寫入組件中,你會(huì)發(fā)現(xiàn)在created中無(wú)法對(duì)chart進(jìn)行一些初始化配置,一定要等這個(gè)html渲染完后才可以進(jìn)行,那么mounted就是不二之選。

生命周期是否獲取dom節(jié)點(diǎn)是否獲取data是否獲取methods
beforeCreate
created
beforeMount
mounted

beforeCreate階段

對(duì)瀏覽器來(lái)說(shuō),整個(gè)渲染流程尚未開始或者說(shuō)準(zhǔn)備開始,對(duì)vue來(lái)說(shuō),實(shí)例尚未被初始化,data observer和 event/watcher也還未被調(diào)用,在此階段,對(duì)data、methods或文檔節(jié)點(diǎn)的調(diào)用現(xiàn)在無(wú)法得到正確的數(shù)據(jù)。

created階段

對(duì)瀏覽器來(lái)說(shuō),渲染整個(gè)HTML文檔時(shí),dom節(jié)點(diǎn)、css規(guī)則樹與js文件被解析后,但是沒(méi)有進(jìn)入被瀏覽器render過(guò)程,上述資源是尚未掛載在頁(yè)面上,也就是在vue生命周期中對(duì)應(yīng)的created階段,實(shí)例已經(jīng)被初始化,但是還沒(méi)有掛載至 $el上,所以我們無(wú)法獲取到對(duì)應(yīng)的節(jié)點(diǎn),但是此時(shí)我們是可以獲取到vue中data與methods中的數(shù)據(jù)的

beforeMount階段

實(shí)際上與created階段類似,節(jié)點(diǎn)尚未掛載,但是依舊可以獲取到data與methods中的數(shù)據(jù)。

mounted階段

對(duì)瀏覽器來(lái)說(shuō),已經(jīng)完成了dom與css規(guī)則樹的render,并完成對(duì)render tree進(jìn)行了布局,而瀏覽器收到這一指令,調(diào)用渲染器的paint()在屏幕上顯示,而對(duì)于vue來(lái)說(shuō),在mounted階段,vue的template成功掛載在$el中,此時(shí)一個(gè)完整的頁(yè)面已經(jīng)能夠顯示在瀏覽器中,所以在這個(gè)階段,即可以調(diào)用節(jié)點(diǎn)了(關(guān)于這一點(diǎn),在筆者測(cè)試中,在mounted方法中打斷點(diǎn)然后run,依舊能夠在瀏覽器中看到整體的頁(yè)面)。

四、使用場(chǎng)景

通過(guò)瀏覽器的渲染過(guò)程,可以總結(jié)出created和mounted的使用場(chǎng)景

  • created通常用于初始化某些屬性值,例如data中的數(shù)據(jù),然后再渲染成視圖。
  • mounted通常在初始化頁(yè)面完成后,對(duì)html的dom節(jié)點(diǎn)進(jìn)行需要的操作。

因此,在created中,是無(wú)法進(jìn)行DOM操作的,而mounted可以獲取渲染出來(lái)的所有屬性值。

五、常見相關(guān)問(wèn)題

一些頁(yè)面跳轉(zhuǎn)后, 一些基礎(chǔ)數(shù)據(jù)接口沒(méi)有重新請(qǐng)求

舉個(gè)簡(jiǎn)單的例子:

created(){     
	this.init();  },   mounted() {    this.init();  },  methods: {    init() {        
	this.getList();        
	this.getdetailById();        
	this.getFicts();      
}    },}

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue-router相關(guān)基礎(chǔ)知識(shí)及工作原理

    vue-router相關(guān)基礎(chǔ)知識(shí)及工作原理

    這篇文章主要介紹了vue-router相關(guān)基礎(chǔ)知識(shí)及單頁(yè)面應(yīng)用的工作原理,需要的朋友可以參考下
    2018-03-03
  • vue項(xiàng)目初始化過(guò)程中錯(cuò)誤總結(jié)

    vue項(xiàng)目初始化過(guò)程中錯(cuò)誤總結(jié)

    在Vue.js項(xiàng)目初始化和構(gòu)建過(guò)程中,可能會(huì)遇到多種問(wèn)題,首先,npm?install過(guò)程中報(bào)錯(cuò),如提示“No?such?file?or?directory”,建議刪除package-lock.json文件后重新安裝,在build或run時(shí),若出現(xiàn)core-js相關(guān)錯(cuò)誤
    2024-09-09
  • 基于Vue.js實(shí)現(xiàn)數(shù)字拼圖游戲

    基于Vue.js實(shí)現(xiàn)數(shù)字拼圖游戲

    為了進(jìn)一步讓大家了解Vue.js的神奇魅力,了解Vue.js的一種以數(shù)據(jù)為驅(qū)動(dòng)的理念,本文主要利用Vue實(shí)現(xiàn)了一個(gè)數(shù)字拼圖游戲,其原理并不是很復(fù)雜,下面跟著小編一起來(lái)學(xué)習(xí)學(xué)習(xí)。
    2016-08-08
  • Vue分頁(yè)組件的封裝方法

    Vue分頁(yè)組件的封裝方法

    這篇文章主要為大家詳細(xì)介紹了Vue分頁(yè)組件的封裝方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • Vue.use與Vue.prototype的區(qū)別及說(shuō)明

    Vue.use與Vue.prototype的區(qū)別及說(shuō)明

    這篇文章主要介紹了Vue.use與Vue.prototype的區(qū)別及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • 關(guān)于Vue的?Vuex的4個(gè)輔助函數(shù)

    關(guān)于Vue的?Vuex的4個(gè)輔助函數(shù)

    這篇文章主要介紹了關(guān)于Vue的?Vuex的4個(gè)輔助函數(shù),輔助函數(shù)的好處就是幫助我們簡(jiǎn)化了獲取store中state、getter、mutation和action,下面我們一起來(lái)看看文章具體的舉例說(shuō)明吧,需要的小伙伴也可以參考一下
    2021-12-12
  • vue中實(shí)現(xiàn)拖拽排序功能的詳細(xì)教程

    vue中實(shí)現(xiàn)拖拽排序功能的詳細(xì)教程

    在業(yè)務(wù)中列表拖拽排序是比較常見的需求,下面這篇文章主要給大家介紹了關(guān)于vue中實(shí)現(xiàn)拖拽排序功能的詳細(xì)教程,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • vue的虛擬DOM使用方式

    vue的虛擬DOM使用方式

    這篇文章主要介紹了vue的虛擬DOM使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-09-09
  • Vue打包上線之后部分CSS不生效問(wèn)題的解決辦法

    Vue打包上線之后部分CSS不生效問(wèn)題的解決辦法

    在vue項(xiàng)目中開發(fā)環(huán)境的樣式?jīng)]問(wèn)題,但是打包上線后,樣式不生效,下面這篇文章主要給大家介紹了關(guān)于Vue打包上線之后部分CSS不生效問(wèn)題的解決辦法,需要的朋友可以參考下
    2022-12-12
  • vue:左右過(guò)渡展開折疊的組件

    vue:左右過(guò)渡展開折疊的組件

    在網(wǎng)上找了好久關(guān)于左右過(guò)渡動(dòng)畫折疊的組件,沒(méi)有合適的代碼,效果類似于element UI中的Drawer抽屜組件,只不過(guò)ele中的都是懸浮的組件,工作中遇到的很多都是占用空間的展開折疊,網(wǎng)上很多也是上下展開收起的組件,于是就自己寫了一個(gè),分享給大家,感興趣的朋友參考下吧
    2023-11-11

最新評(píng)論