Vue中created與mounted的區(qū)別淺析
大多數(shù)人在談?wù)撋芷阢^子時會感到困惑的一件事是 created 和 mounted 之間的區(qū)別。有著相似的名稱,覺得應(yīng)該做同樣的事情,但還是有一些細微的差別。
首先,created() 和 mounted() 都可以訪問原型上的 data 和 props 。例如,下面的代碼中,這兩個鉤子將在控制臺中打印出 My Data 和 My Props :
<template>
<div></div>
</template>
<script>
export default {
data() {
return {
dataMsg: "My data",
};
},
props: {
propMsg: {
type: String,
default: "My Props",
},
},
created() {
console.log(this.dataMsg);
console.log(this.propMsg);
},
mounted() {
console.log(this.dataMsg);
console.log(this.propMsg);
},
};
</script>created() 和 mounted() 之間的根本區(qū)別在于訪問DOM,在上面的示例中,如果嘗試引用 this.$el,在 created() 中返回 null,在 mounted() 中返回 DOM 元素:
export default {
created() {
// 打印 null
console.log(this.$el);
},
mounted() {
// 打印 DOM 元素
console.log(this.$el);
},
};因此,任何 DOM 操作,甚至使用諸如 querySelector 之類的方法獲取 DOM 元素結(jié)構(gòu)將無法在 created() 中使用。因此根據(jù)這點區(qū)別 created() 非常適合調(diào)用 API,而 mounted() 非常適合在 DOM 元素完全加載后執(zhí)行任何操作。
在 Vue3 組合式API(Composition API)中,created() 和 beforeCreated() 將不再存在,可以取而代之的是 setup(),因此,在 setup() 中 DOM 仍然不可用,而 mounted() 保持不變。
附:vue官網(wǎng)給出的生命周期圖

總結(jié)
到此這篇關(guān)于Vue中created與mounted區(qū)別的文章就介紹到這了,更多相關(guān)Vue created與mounted區(qū)別內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue中使用iframe嵌入網(wǎng)頁,頁面可自適應(yīng)問題
這篇文章主要介紹了vue中使用iframe嵌入網(wǎng)頁,頁面可自適應(yīng)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-09-09
Vue3中Vuex狀態(tài)管理學(xué)習(xí)實戰(zhàn)示例詳解
這篇文章主要為大家介紹了Vue3中Vuex狀態(tài)管理學(xué)習(xí)實戰(zhàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-06-06
解決Ant Design Modal內(nèi)嵌Form表單initialValue值不動態(tài)更新問題
這篇文章主要介紹了解決Ant Design Modal內(nèi)嵌Form表單initialValue值不動態(tài)更新問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-10-10
詳解關(guān)于vue2.0工程發(fā)布上線操作步驟
這篇文章主要介紹了詳解關(guān)于vue2.0工程發(fā)布上線操作步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-09-09
element表格數(shù)據(jù)部分模糊的實現(xiàn)代碼
這篇文章給大家介紹了element表格數(shù)據(jù)模糊的實現(xiàn)代碼,文中有詳細的效果展示和實現(xiàn)代碼供大家參考,具有一定的參考價值,需要的朋友可以參考下2024-01-01

