應用生命周期
uni-app支持如下應用生命周期函式:
| 函式名 | 說明 |
|---|---|
| onLaunch | 當uni-app初始化完成時觸發(全域只觸發一次) |
| onShow | 當uni-app啟動,或從后臺進入前臺顯示 |
| onHide | 當uni-app從前臺進入后臺 |
| onError | 當uni-app報錯時觸發 |
| onUniNViewMessage | 對nvue頁面發送的資料進行監聽,可參考nvue向vue通訊 |
| onUnhandledRejection | 對未處理的Promise拒絕事件監聽函式 |
| onPageNotFound | 頁面不存在監聽函式 |
| onThemeChange | 監聽系統主題變化 |
注意:
1、 應用生命周期僅可以在App.vue中監聽,在其他頁面監聽無效,
2、 onLaunch里進行頁面跳轉,如遇白屏報錯,請參考https://ask.dcloud.net.cn/article/35942
頁面生命周期
uni-app支持如下頁面生命周期函式:
| 函式名 | 說明 | 平臺差異說明 | 最低版本 |
|---|---|---|---|
| onLoad | 監聽頁面加載,其引數為上個頁面傳遞的資料,引數型別為Object(用于頁面傳參),參考示例 | ||
| onShow | 監聽頁面顯示,頁面每次出現在螢屏上都觸發,包括從下級頁面點回傳露出當前頁面 | ||
| onReady | 監聽頁面初次渲染,注意如果渲染速度快,會在頁面進入影片完成前觸發 | ||
| onHide | 監聽頁面隱藏 | ||
| onUnload | 監聽頁面卸載 | ||
| onResize | 監聽視窗尺寸變化 | App、微信小程式 | |
| onPullDownRefresh | 監聽用戶下拉動作,一般用于下拉重繪,參考示例 | ||
| onReachBottom | 頁面上拉觸底事件的處理函式 | ||
| onTabItemTap | 點擊tab時觸發,引數為Object,具體見下方注意事項 | 微信小程式、百度小程式、H5、App(自定義組件模式) | |
| onShareAppMessage | 用戶點擊右上角分享 | 微信小程式、百度小程式、位元組跳動小程式、支付寶小程式 | |
| onPageScroll | 監聽頁面滾動,引數為Object | ||
| onNavigationBarButtonTap | 監聽原生標題欄按鈕點擊事件,引數為Object | App、H5 | |
| onBackPress | 監聽頁面回傳,回傳event={from:backbutton、navigateBack},backbutton表示來源是左上角回傳按鈕或android回傳鍵;navigateBack表示來源是uni.navigateBack;表示來源是uni.navigateBack;詳細說明及使用:onBackPress詳解 | ||
| onNavigationBarSearchInputChanged | 監聽原生標題欄搜索輸入框輸入內容變化事件 | App、H5 | 1.6.0 |
| onNavigationBarSearchInputConfirmed | 監聽原生標題欄搜索輸入框搜索事件,用戶點擊軟鍵盤上的”搜索“按鈕時觸發, | App、H5 | 1.6.0 |
| onNavigationBarSearchInputClicked | 監聽原生標題欄搜索輸入框點擊事件 | App、H5 | 1.6.0 |
| onShareTimeline | 監聽用戶點擊右上角轉發到朋友圈 | 微信小程式 | 2.8.1+ |
| onAddToFavorites | 監聽用戶點擊右上角收藏 | 微信小程式 | 2.8.1+ |
onPageScroll引數說明:
| 屬性 | 型別 | 說明 |
|---|---|---|
| scrollTop | Number | 頁面在垂直方向已滾動的距離(單位px) |
onTabItemTap引數說明:
| 屬性 | 型別 | 說明 |
|---|---|---|
| index | String | 被點擊tabItem的序號,從0開始 |
| pagePath | String | 被點擊tabItem的頁面路徑 |
| text | String | 被點擊tabItem的按鈕文字 |
注意:
onTabItemTap常用于點擊當前tabitem,滾動或重繪當前頁面,如果是點擊不同的tabitem,一定會觸發頁面切換,
如果想在App端實作點擊某個tabitem不跳轉頁面,不能使用onTabItemTap,可以使用plus.nativeObj.view放一個區塊蓋住原先的tabitem,并攔截點擊事件,
onTabItemTap在App端,從HBuilderX 1.9 的自定義組件編譯模式開始支持,
避免在 onShow 里使用需要權限的 API(比如 setScreenBrightness() 等需要手機權限), 可能會再次觸發onShow造成死回圈,
onNavigationBarButtonTap引數說明:
| 屬性 | 型別 | 說明 |
|---|---|---|
| index | Number | 原生標題欄按鈕陣列的下標 |
onBackPress引數說明:
| 屬性 | 型別 | 說明 |
|---|---|---|
| from | String | 觸發回傳行為的來源:‘backbutton’——左上角導航欄按鈕及安卓回傳鍵; ‘navigateBack’——uni.navigateBack()方法, |
// An highlighted block
export default{
data() {
return{};
},
onBackPress(options) {
console.log('from:' + options.from)
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/60496.html
標籤:其他
