vue created鉤子函數(shù)與mounted鉤子函數(shù)的用法區(qū)別
1:在使用vue框架的過程中,我們經(jīng)常需要給一些數(shù)據(jù)做一些初始化處理,這時(shí)候我們常用的就是在created與mounted選項(xiàng)中作出處理。
首先來看下官方解釋,官方解釋說created是在實(shí)例創(chuàng)建完成后唄立即調(diào)用。
在這一步,實(shí)例已完成以下配置:數(shù)據(jù)觀測 (data observer),屬性和方法的運(yùn)算,watch/event 事件回調(diào)。然而,掛載階段還沒開始,$el 屬性目前不可見。
這話的意思我覺得重點(diǎn)在于說掛架階段還沒開始,什么叫還沒開始掛載,也就是說,模板還沒有被渲染成html,也就是這時(shí)候通過id什么的去查找頁面元素是找不到的。
下面看下實(shí)例來證明。
看這個(gè)例子的結(jié)果截圖如下,此錯(cuò)誤證明找不到id為name的Dom元素。即模板還未渲染成html
所以,一般creadted鉤子函數(shù)主要是用來初始化數(shù)據(jù)。
2:mounted鉤子函數(shù)一般是用來向后端發(fā)起請求拿到數(shù)據(jù)以后做一些業(yè)務(wù)處理。官方解釋如下:
el 被新創(chuàng)建的 vm.$el 替換,并掛載到實(shí)例上去之后調(diào)用該鉤子。如果 root 實(shí)例掛載了一個(gè)文檔內(nèi)元素,當(dāng) mounted 被調(diào)用時(shí) vm.$el 也在文檔內(nèi)。
這意思是該鉤子函數(shù)是在掛在完成以后也就是模板渲染完成以后才會(huì)被調(diào)用。
下面看實(shí)例
下面是結(jié)果
取到了值,這說明這時(shí)候vue模板已經(jīng)渲染完畢。因此,Dom操作一般是在mounted鉤子函數(shù)中進(jìn)行的
computed:{} 計(jì)算屬性,什么是計(jì)算屬性呢,我個(gè)人理解就是對數(shù)據(jù)進(jìn)行一定的操作,可以包含邏輯處理操作,對計(jì)算屬性中的數(shù)據(jù)進(jìn)行監(jiān)控。計(jì)算屬性是基于它的以來進(jìn)行更新的,只有在相關(guān)依賴發(fā)生改變時(shí)側(cè)能更新變化,以函數(shù)的形式返回結(jié)果。
然后可以像綁定普通屬性一樣在模板中綁定計(jì)算屬性。
<body> <div id="box" :class="{a:true,b:true}"> <div></div> {{msg}} <div> 網(wǎng)址 {{msg}}的網(wǎng)絡(luò)協(xié)議是:{{msg2}} </div> </div> <script type="text/javascript"> window.οnlοad=function(){ new Vue({ el:"#box", data:{ msg:"https://www.baidu.com" }, computed:{ msg2:function(){ var s=this.msg.split(":")[0]; return s; } } }) } </script> </body>
補(bǔ)充知識:vue請求數(shù)據(jù)放在created好還是mounted里好
建議放在created里
created:在模板渲染成html前調(diào)用,即通常初始化某些屬性值,然后再渲染成視圖。
mounted:在模板渲染成html后調(diào)用,通常是初始化頁面完成后,再對html的dom節(jié)點(diǎn)進(jìn)行一些需要的操作。
如果在mounted鉤子函數(shù)中請求數(shù)據(jù)可能導(dǎo)致頁面閃屏問題
其實(shí)就是加載時(shí)機(jī)問題,放在created里會(huì)比mounted觸發(fā)早一點(diǎn),如果在頁面掛載完之前請求完成的話就不會(huì)看到閃屏了
以上這篇vue created鉤子函數(shù)與mounted鉤子函數(shù)的用法區(qū)別就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue實(shí)現(xiàn)倒計(jì)時(shí)功能
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)倒計(jì)時(shí)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-03-03Vue.directive 實(shí)現(xiàn)元素scroll邏輯復(fù)用
這篇文章主要介紹了Vue.directive 實(shí)現(xiàn)元素scroll邏輯復(fù)用功能,文中給大家提到元素實(shí)現(xiàn)滾動(dòng)的條件有兩個(gè),具體內(nèi)容詳情大家參考下本文2019-11-11Vue封裝組件利器之$attrs、$listeners的使用
vue通信手段有很多種,props/emit、vuex、event bus、provide/inject等,還有一種通信方式,那就是$attrs和$listeners,下面這篇文章主要給大家介紹了關(guān)于Vue封裝組件利器之$attrs、$listeners使用的相關(guān)資料,需要的朋友可以參考下2021-12-12vue路由傳參方式的方式總結(jié)及獲取參數(shù)詳解
vue 路由傳參的使用場景一般都是應(yīng)用在父路由跳轉(zhuǎn)到子路由時(shí),攜帶參數(shù)跳轉(zhuǎn),下面這篇文章主要給大家介紹了關(guān)于vue路由傳參方式的方式總結(jié)及獲取參數(shù)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07vue結(jié)合el-dialog封裝自己的confirm二次確認(rèn)彈窗方式
這篇文章主要介紹了vue結(jié)合el-dialog封裝自己的confirm二次確認(rèn)彈窗方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08vue3中setup-script的應(yīng)用實(shí)例
script-setup是一個(gè)比較有爭議的新特性,作為 setup 函數(shù)的語法糖,褒貶不一,不過經(jīng)歷了幾次迭代之后,目前在體驗(yàn)上來說,感受還是非常棒的,這篇文章主要給大家介紹了關(guān)于vue3中setup-script應(yīng)用的相關(guān)資料,需要的朋友可以參考下2022-01-01vue3中reactive數(shù)據(jù)被重新賦值后無法雙向綁定的解決
這篇文章主要介紹了vue3中reactive數(shù)據(jù)被重新賦值后無法雙向綁定的解決,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05