uni-app:應用的生命周期與頁面的生命周期與組件的生命周期


生命周期的概念:一個對象從創建、運行、銷毀的整個過程被成為生命周期。

應用的生命周期

 應用的生命周期函數必須在app.vue。

頁面的生命周期

如何來區分頁面和組件:知道組件是引用的、頁面是跳轉的(需要在pages.json中配置路徑)就完了

uni-app 支持如下頁面生命周期函數:

組件的生命周期函數

1、beforeCreate表示實例初始化之后被調用,此時在引入的組件中無法獲取被引入組件的data數據和方法

2、created表示實例初始化完成后被調用,此時在引入的組件中可以獲取被引入組件的data數據和方法。所以一般在created中進行數據的初始化。

3、beforeMount:在掛載開始之前被調用,即組件還沒有被掛載,即組件還沒有被渲染到頁面上。給標簽一個id名稱,在beforeMount函數中通過document.getElementById('myView')訪問該dom元素,注意只能在H5瀏覽器中測試,因為小程序中沒有document對象,由於組件還沒有掛載,故再引入組件的vue文件中無法獲取該dom元素。document.getElementById('myView')值為null,表示組件還沒有渲染到頁面上。

4、mounted:掛載到實例上去之后調用,組件已經渲染到頁面上。此時可以獲取dom元素。所以,以后要想操作dom元素就在mounted中操作dom元素。

5、beforeUpdate和updated只有H5才支持。

6、beforeDestroy組件還沒有銷毀,destroyed表示組件已經銷毀了。怎么才能讓被引入的組件銷毀呢?可以在引入組件的vue文件中給組件添加v-if,當v-if的值由true改為false時,組件被移除或者根本不在組件中創建出來,即被銷毀了。可以在destroyed中清楚定時器。在created中添加一個定時器,即使定時器被銷毀了,組件都被銷毀了那么定時器就沒有什么意義了,但是定時器仍然在執行,所以可以在destroyed中清楚定時器。

區分:頁面的生命周期函數以on開頭,組件的生命周期函數不以on開頭。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM