淺談一下Vue生命周期中mounted和created的區(qū)別
一、什么是生命周期?
用通俗的語(yǔ)言來(lái)說(shuō),就是Vue中實(shí)例或者組件從創(chuàng)建到消滅中間經(jīng)過(guò)的一系列過(guò)程。雖然不太嚴(yán)謹(jǐn),但是也基本上可以理解。
二、created和mounted區(qū)別?
官方圖解如下:

我們從圖中看兩個(gè)節(jié)點(diǎn):
created:在模板渲染成html前調(diào)用,即通常初始化某些屬性值,然后再渲染成視圖。
mounted:在模板渲染成html后調(diào)用,通常是初始化頁(yè)面完成后,再對(duì)html的dom節(jié)點(diǎn)進(jìn)行一些需要的操作。
其實(shí)兩者比較好理解,通常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就是不二之選。
下面看一個(gè)例子(用組件)。
三、例子
Vue.component("demo1",{
data:function(){
return {
name:"",
age:"",
city:""
}
},
template:"<ul><li id='name'>{{name}}</li><li>{{age}}</li><li>{{city}}</li></ul>",
created:function(){
this.name="唐浩益"
this.age = "12"
this.city ="杭州"
var x = document.getElementById("name")//第一個(gè)命令臺(tái)錯(cuò)誤
console.log(x.innerHTML);
},
mounted:function(){
var x = document.getElementById("name")//第二個(gè)命令臺(tái)輸出的結(jié)果
console.log(x.innerHTML);
}
});
var vm = new Vue({
el:"#example1"
})可以看到輸出如下:

可以看到都在created賦予初始值的情況下成功渲染出來(lái)了。 但是同時(shí)看console臺(tái)如下:

可以看到第一個(gè)報(bào)了錯(cuò),實(shí)際是因?yàn)檎也坏絠d,getElementById(ID) 并沒(méi)有找到元素,原因如下: 在created的時(shí)候,視圖中的html并沒(méi)有渲染出來(lái),所以此時(shí)如果直接去操作html的dom節(jié)點(diǎn),一定找不到相關(guān)的元素 而在mounted中,由于此時(shí)html已經(jīng)渲染出來(lái)了,所以可以直接操作dom節(jié)點(diǎn),故輸出了結(jié)果“唐浩益”。 以上就是我自己總結(jié)的mounted和mounted的區(qū)別
到此這篇關(guān)于淺談一下Vue生命周期中mounted和created的區(qū)別的文章就介紹到這了,更多相關(guān)Vue生命周期mounted和created的區(qū)別內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue3中Element Plus Table(表格)點(diǎn)擊獲取對(duì)應(yīng)id方式
這篇文章主要介紹了Vue3中Element Plus Table(表格)點(diǎn)擊獲取對(duì)應(yīng)id方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10
vue路由$router.push()使用query傳參的實(shí)際開發(fā)使用
在vue項(xiàng)目中我們用函數(shù)式編程this.$router.push跳轉(zhuǎn),用query傳遞一個(gè)對(duì)象時(shí)要把這個(gè)對(duì)象先轉(zhuǎn)化為字符串,然后在接收的時(shí)候要轉(zhuǎn)化為對(duì)象,下面這篇文章主要給大家介紹了關(guān)于vue路由$router.push()使用query傳參的實(shí)際開發(fā)使用,需要的朋友可以參考下2022-11-11
vue組件 keep-alive 和 transition 使用詳解
這篇文章主要介紹了vue組件 keep-alive 和 transition 使用詳解,需要的朋友可以參考下2019-10-10
安裝VUE-CLI一直失敗的排錯(cuò)過(guò)程及解決方案
這篇文章主要介紹了安裝VUE-CLI一直失敗的排錯(cuò)過(guò)程及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10
element中table高度自適應(yīng)的實(shí)現(xiàn)
這篇文章主要介紹了element中table高度自適應(yīng)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
在Vue中使用this.$store或者是$route一直報(bào)錯(cuò)的解決
今天小編就為大家分享一篇在Vue中使用this.$store或者是$route一直報(bào)錯(cuò)的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-11-11

