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

vue中created和mounted的區(qū)別淺析

 更新時間:2019年08月13日 10:38:05   作者:dutny  
這篇文章主要給大家介紹了關于vue中created和mounted區(qū)別的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用vue具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧

前言

關于vue.js中的生命周期,如果不是有特別的需求,一般在項目開發(fā)過程中更多的使用created和mounted,
所以在本文中主要講解created與mounted在開發(fā)中的主要使用區(qū)別。

關于完整的生命周期,不久會在另一篇文章中做整體的理解,包括activated、destroyed等,不過可能會有點晚,大家可以留意一下

版本信息:

  • 系統(tǒng):win10
  • Vue:2.5.2
  • webpack:3.6.0
  • npm:6.9.0
  • node:10.15.3

生命周期

完整的生命周期圖示為了避免占用板塊,這里就不貼出來了,大家可以自行前往vue生命周期查看。

瀏覽器渲染過程

具體的瀏覽器渲染過程我會過幾天另外寫一遍文章,大家可以去我的文章看看。

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

生命周期中的瀏覽器渲染

這里是官方文檔對生命周期api的解釋,大家可以看看

以下為測試vue部分生命函數(shù)

beforeCreate(){
 console.log('beforecreate:',document.getElementById('first'))//null
 console.log('data:',this.text);//undefined
 this.sayHello();//error:not a function
},
created(){
 console.log('create:',document.getElementById('first'))//null
 console.log('data:',this.text);//this.text
 this.sayHello();//this.sayHello()
},
beforeMount(){
 console.log('beforeMount:',document.getElementById('first'))//null
 console.log('data:',this.text);//this.text
 this.sayHello();//this.sayHello()
},
mounted(){
 console.log('mounted:',document.getElementById('first'))//<p></p>
 console.log('data:',this.text);//this.text
 this.sayHello();//this.sayHello()
}

通過上述測試我們可以知道,

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

以我的個人理解,vue生命周期實際上和瀏覽器渲染過程是掛鉤的,

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

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

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

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

寫在最后

筆者目前也只是一個職場小白,粗略探討一下自己的看法,若有疑問,或者文章錯誤,都可以在評論中指出,我們一起討論

好了,以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。

相關文章

  • vue中阻止click事件冒泡,防止觸發(fā)另一個事件的方法

    vue中阻止click事件冒泡,防止觸發(fā)另一個事件的方法

    下面小編就為大家分享一篇vue中阻止click事件冒泡,防止觸發(fā)另一個事件的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • Vue 列表上下過渡效果的實例代碼

    Vue 列表上下過渡效果的實例代碼

    最近有個需求,一個列表上下移動要有簡單過渡效果。本文通過實例代碼給大家介紹Vue 列表上下過渡效果,需要的朋友可以參考下
    2019-06-06
  • el-input寬度跟隨輸入內(nèi)容自適應的實現(xiàn)方法

    el-input寬度跟隨輸入內(nèi)容自適應的實現(xiàn)方法

    這篇文章主要給大家介紹了關于el-input寬度跟隨輸入內(nèi)容自適應的實現(xiàn)方法,我們再實際應用中可能需要input文本框能夠根據(jù)輸入字符的所占據(jù)的寬度自動調(diào)節(jié)尺寸,需要的朋友可以參考下
    2023-08-08
  • 關于vue 的slot分發(fā)內(nèi)容 (多個分發(fā))

    關于vue 的slot分發(fā)內(nèi)容 (多個分發(fā))

    這篇文章主要介紹了關于vue 的slot分發(fā)內(nèi)容 (多個分發(fā)),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • 巧妙運用v-model實現(xiàn)父子組件傳值的方法示例

    巧妙運用v-model實現(xiàn)父子組件傳值的方法示例

    這篇文章主要介紹了巧妙運用v-model實現(xiàn)父子組件傳值的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-04-04
  • Vue中進行打包與部署的方法實例

    Vue中進行打包與部署的方法實例

    這篇文章主要給大家介紹了關于Vue中進行打包與部署的相關資料, 我們常使用前后端分離項目時,會需要將前端vue打包然后部署,需要的朋友可以參考下
    2023-09-09
  • 如何使用ant-design-vue的Table組件

    如何使用ant-design-vue的Table組件

    這篇文章主要介紹了如何使用ant-design-vue的Table組件,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • vue實現(xiàn)輸入框自動跳轉功能

    vue實現(xiàn)輸入框自動跳轉功能

    這篇文章主要為大家詳細介紹了vue實現(xiàn)輸入框自動跳轉功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • Vue混入使用和選項合并詳解

    Vue混入使用和選項合并詳解

    這篇文章主要介紹了Vue混入使用和選項合并,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2021-10-10
  • 一文詳解Vue3中如何使用Vue?Router

    一文詳解Vue3中如何使用Vue?Router

    Vue-Router路由是根據(jù)不同的url地址展現(xiàn)不同的內(nèi)容或頁面,這篇文章主要給大家介紹了關于Vue3中如何使用Vue?Router的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-02-02

最新評論