1. 程式人生 > 其它 >uni-app 生命週期:應用,頁面,元件

uni-app 生命週期:應用,頁面,元件

技術標籤:uni-app

uni-app的生命週期有三種:應用生命週期,頁面生命週期,元件生命週期。

在合理的生命週期內做應該的操作。

一、應用生命週期,app.vue檔案中:

onLaunch:function(){ //onLaunch只能在app.vue
//登入操作,全域性變數
},
onShow:function(){
},
onHide:function(){
}

onLaunch應用初始化完成觸發一次,全域性只觸發一次;

onShow應用啟動的時候,或者從後臺進入前臺會觸發;

onHide應用從前臺進入後臺觸發;

二、頁面生命週期(一般統一“/src/pages”目錄下的檔案為頁面):

onLoad(option){
},
onReady(){
//如果渲染速度快,會在頁面進入動畫完成前觸發
},
onShow(){
},
onHide(){
},
onUnload(){
}

onLoad:監聽頁面載入。如果上一個頁面有引數傳入該頁面,可以從該函式的option引數中獲取。

onReady:監聽頁面的初次渲染完成。

onShow:監聽頁面顯示。頁面每次出現在螢幕上都觸發,包括從下級頁面點返回露出當前頁面。一般的介面最好不要再“onLoad”中請求,因為再次進入該頁面就不會再次請求了,也就是頁面不會再重新整理,而最好是選擇onShow中。如果載入列表頁,二級頁面對一級的列表頁面內容有修改,則以及列表函式應該在onShow中載入,否則可以選擇onLoad。

onHide:監聽頁面隱藏。

onUnload:監聽頁面解除安裝。處理需要解除安裝的事件,如定時器setinterval。

總結:

1:在一些資料變化較少的時候我們用onload

2:像這些order訂單列表資料變化及時性我們用的是onshow;

三、元件生命週期(一般統一“/src/components”目錄下的檔案為元件):

beforeCreate(){
},
created(){
},
beforeMounted(){
},
mounted(){
},
beforeUpdate(){
},
update(){
},
beforeDestroy(){
},
destroyed(){
}

beforeCreate:元件初始化,但資料原生觀測、自定義觀測(event\watcher)沒生成之前。 未完全建立階段

created:元件建立後,但還未掛載 完全建立階段
beforeMounted:元件渲染後,掛載前。 渲染後待掛載
mounted:元件掛載到頁面 可用 vm.$el 訪問 掛載OK。介面最好也是在“mounted”請求。
beforeUpdate:虛擬 DOM 重新渲染和打補丁之前 再次渲染前
update:元件 DOM 已經更新 再次渲染後
beforeDestroy:例項銷燬之前呼叫。例項仍然完全可用。 銷燬前
destroyed:Vue 例項銷燬後呼叫