色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術(shù)文章
文章詳情頁

Vue中created和mounted使用場景分析

瀏覽:142日期:2022-06-09 16:43:37
目錄
  • 一、生命周期概念
  • 二、瀏覽器渲染過程
  • 三、生命周期中的瀏覽器渲染
    • beforeCreate階段
    • created階段
    • beforeMount階段
    • mounted階段
  • 四、使用場景
    • 五、常見相關(guān)問題

      一、生命周期概念

      通俗地講,生命周期即Vue實(shí)例或組件從創(chuàng)建到被消滅的一系列過程,中間的各個(gè)節(jié)點(diǎn)被稱為鉤子.vue.js中created方法是一個(gè)生命周期鉤子函數(shù),一個(gè)vue實(shí)例被生成后會(huì)調(diào)用這個(gè)函數(shù)。一個(gè)vue實(shí)例被生成后還要綁定到某個(gè)html元素上,之后還要進(jìn)行編譯,然后再插入到document中。每一個(gè)階段都會(huì)有一個(gè)鉤子函數(shù),方便開發(fā)者在不同階段處理不同邏輯。一般可以在created函數(shù)中調(diào)用ajax獲取頁面初始化所需的數(shù)據(jù)。

      二、瀏覽器渲染過程

      要深刻理解生命周期的各個(gè)節(jié)點(diǎn),就必須了解瀏覽器的渲染過程

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

      三、生命周期中的瀏覽器渲染

      • created:已創(chuàng)建,在模板渲染成html前調(diào)用,即通常初始化某些屬性值,然后再渲染成視圖。
      • mounted:已掛載,在模板渲染成html后調(diào)用,通常是初始化頁面完成后,再對(duì)htmldom節(jié)點(diǎn)進(jìn)行一些操作。

      通常created使用的次數(shù)多,而mounted是在一些插件或組件的使用中進(jìn)行操作,
      比如插件chart.js的使用: var ctx = document.getElementById(ID);
      通常會(huì)有這一步,而如果你寫入組件中,
      你會(huì)發(fā)現(xiàn)在created中無法對(duì)chart進(jìn)行一些初始化配置,
      一定要等這個(gè)html渲染完后才可以進(jìn)行,那么mounted就是不二之選。

      生命周期是否獲取dom節(jié)點(diǎn)是否獲取data是否獲取methodsbeforeCreate否否否created否是是beforeMount否是是mounted是是是

      beforeCreate階段

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

      created階段

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

      beforeMount階段

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

      mounted階段

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

      四、使用場景

      通過瀏覽器的渲染過程,可以總結(jié)出created和mounted的使用場景

      created:通常用于初始化某些屬性值,例如data中的數(shù)據(jù),然后再渲染成視圖。
      mounted:通常在初始化頁面完成后,對(duì)html的dom節(jié)點(diǎn)進(jìn)行需要的操作。

      因此,在created中,是無法進(jìn)行DOM操作的,而mounted可以獲取渲染出來的所有屬性值。

      五、常見相關(guān)問題

      一些頁面跳轉(zhuǎn)后, 一些基礎(chǔ)數(shù)據(jù)接口沒有重新請(qǐng)求

      舉個(gè)簡單的例子 created(){ 	this.init();  }, mounted() {    this.init();  }, methods: {    init() {this.getList();this.getdetailById();this.getFicts();      }    },}

      到此這篇關(guān)于Vue中created和mounted詳解的文章就介紹到這了,更多相關(guān)Vue中created和mounted內(nèi)容請(qǐng)搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!

      標(biāo)簽: JavaScript
      主站蜘蛛池模板: 高清国产一级精品毛片基地 | 亚洲视频精品在线观看 | 日韩精品中文字幕一区二区三区 | 日韩亚洲欧美一区 | 中文字幕一区二区三区视频在线 | 欧美理论片在线观看一区二区 | 国产精品大片天天看片 | 亚洲成a人片在线观看中文 亚洲成a人片在线观看中文!!! | 韩国在线精品福利视频在线观看 | 毛片免费全部免费观看 | 成人性色生活片免费网 | 韩国日本三级在线观看 | 国产日本欧美在线观看 | 亚洲精品推荐 | 久草视频免费在线 | 波多野结衣在线观看高清免费资源 | 国产精品国产三级国产专 | 久久福利青草精品资源站免费 | 国产一级片免费 | 亚洲理论欧美理论在线观看 | 国产第2页 | 日本免费一区视频 | 国产成视频| 国产高清免费观看 | 成年网在线观看免费观看网址 | 欧美视频一区二区在线观看 | 国产成人精品999在线 | 国产精品视频久久久久久 | 久久久久久尹人网香蕉 | 成人国产精品一级毛片天堂 | 91成人国产网站在线观看 | 日韩欧美视频一区二区三区 | 国产在线高清不卡免费播放 | 国产伦久视频免费观看 视频 | 高清精品女厕在线观看 | 高清午夜线观看免费 | 欧美成人三级网站 | 自拍偷自拍亚洲精品一区 | 亚洲精品国产成人7777 | 亚洲毛片在线播放 | 欧美成人欧美激情欧美风情 |