Vue中created與mounted的區(qū)別淺析
大多數(shù)人在談?wù)撋芷阢^子時會感到困惑的一件事是 created
和 mounted
之間的區(qū)別。有著相似的名稱,覺得應(yīng)該做同樣的事情,但還是有一些細(xì)微的差別。
首先,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-09Vue3中Vuex狀態(tài)管理學(xué)習(xí)實戰(zhàn)示例詳解
這篇文章主要為大家介紹了Vue3中Vuex狀態(tài)管理學(xué)習(xí)實戰(zhàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jì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-09element表格數(shù)據(jù)部分模糊的實現(xiàn)代碼
這篇文章給大家介紹了element表格數(shù)據(jù)模糊的實現(xiàn)代碼,文中有詳細(xì)的效果展示和實現(xiàn)代碼供大家參考,具有一定的參考價值,需要的朋友可以參考下2024-01-01