uni-app 支持如下應(yīng)用生命周期函數(shù):
函數(shù)名 | 說明 |
---|---|
onLaunch | 當uni-app 初始化完成時觸發(fā)(局部只觸發(fā)一次) |
onOpen | 當uni-app 啟動,或從后臺進入前臺顯示 |
onHide | 當uni-app 從前臺進入后臺 |
onError | 當uni-app 報錯時觸發(fā) |
onUniNViewMessage | 對nvue 頁面發(fā)送的數(shù)據(jù)進行監(jiān)聽,可參考 nvue 向 vue 通訊 |
onUnhandledRejection | 對未處理的 Promise 拒絕事件監(jiān)聽函數(shù)(2.8.1+) |
onPageNotFound | 頁面不存在監(jiān)聽函數(shù) |
onThemeChange | 監(jiān)聽系統(tǒng)主題變化 |
注意
示例代碼
<script>
// 只能在App.vue里監(jiān)聽應(yīng)用的生命周期
export default {
onLaunch: function() {
console.log('App Launch')
},
onShow: function() {
console.log('App Show')
},
onHide: function() {
console.log('App Hide')
}
}
</script>
uni-app 支持如下頁面生命周期函數(shù):
函數(shù)名 | 說明 | 平臺差異說明 | 最低版本 |
---|---|---|---|
onInit | 監(jiān)聽頁面初始化,其參數(shù)通onLoad參數(shù),為上個頁面?zhèn)鬟f的數(shù)據(jù),參數(shù)類型為Object(用于頁面?zhèn)鲄ⅲ|發(fā)時機早于onLoad | 百度小程序 | 3.1.0+ |
負載 | 監(jiān)聽頁面加載,其參數(shù)為上個頁面?zhèn)鬟f的數(shù)據(jù),參數(shù)類型為 Object(用于頁面?zhèn)鲄ⅲ?,參考示?/td> |
|
|
展出 | 監(jiān)聽頁面顯示。頁面每次出現(xiàn)在屏幕上都觸發(fā),包括從下級頁面點返回進入當前頁面 | ||
onReady | 監(jiān)聽頁面初次渲染完成。注意如果渲染速度快,會在頁面進入動畫完成前觸發(fā) | ||
隱藏 | 監(jiān)聽頁面隱藏 | ||
onUnload | 監(jiān)聽頁面卸載 | ||
onResize | 監(jiān)聽窗口尺寸變化 | App,微信小程序 | |
onPullDownRefresh | 監(jiān)聽用戶拖動動作,一般用于拖動刷新,參考示例 | ||
onReachBottom | 頁面上拉觸底事件的處理函數(shù) | ||
onTabItemTap | 單擊選項卡時觸發(fā),參數(shù)為對象,具體見以下注意事項 | 微信小程序,百度小程序,H5,App(自定義組件模式) | |
onShareAppMessage | 用戶點擊右上角分享 | 微信小程序,百度小程序,字節(jié)跳動小程序,支付寶小程序 | |
onPageScroll | 監(jiān)聽頁面滾動,參數(shù)為對象 | nvue 暫不支持 | |
onNavigationBarButtonTap | 監(jiān)聽原生標題欄按鈕點擊事件,參數(shù)為對象 | 5+ App,H5 | |
onBackPress | 監(jiān)聽頁面返回,返回事件= {from:backbutton,navigationBack},backbutton 表示來源是左上角返回按鈕或android 返回鍵; navigateBack 表示來源是 uni.navigateBack;詳細說明及使用:onBackPress 詳解。支付寶小程序只有真機能觸發(fā),只能監(jiān)聽非 navigateBack 引起的返回,不可阻止默認行為。 | App,H5、支付寶小程序 | |
onNavigationBarSearchInputChanged | 監(jiān)聽原生標題欄搜索輸入框輸入內(nèi)容變化事件 | App,H5 | 1.6.0 |
onNavigationBarSearchInputConfirmed | 監(jiān)聽原生標題欄搜索輸入框搜索事件,用戶點擊軟鍵盤上的“搜索”按鈕時觸發(fā)。 | App,H5 | 1.6.0 |
onNavigationBarSearchInputClicked | 監(jiān)聽原生標題欄搜索輸入框點擊事件 | App,H5 | 1.6.0 |
onShareTimeline | 監(jiān)聽用戶點擊右上角轉(zhuǎn)發(fā)到朋友去 | 微信小程序 | 2.8.1+ |
onAddToFavorites | 監(jiān)聽用戶點擊右上角收藏 | 微信小程序 | 2.8.1+ |
onInit使用注意
onReachBottom 使用注意 可在 pages.json 里定義具體頁面底部的觸發(fā)距離 onReachBottomDistance,比如設(shè)為 50,那么滾動頁面到距離底部 50px 時,就會觸發(fā) onReachBottom 事件。
如使用 scroll-view 導致頁面沒有滾動,則觸底事件不會被觸發(fā)。scroll-view 滾動到底部的事件請參考 scroll-view 的文檔
onPageScroll 參數(shù)說明:
屬性 | 類型 | 說明 |
---|---|---|
scrollTop | 數(shù) | 頁面在垂直方向已滾動的距離(單位 px) |
注意
onTabItemTap 參數(shù)說明:
屬性 | 類型 | 說明 |
---|---|---|
指數(shù) | 串 | 被點擊 tabItem 的序號,從 0 開始 |
pagePath | 串 | 被點擊 tabItem 的頁面路徑 |
文本 | 串 | 被點擊 tabItem 的按鈕文字 |
注意
onTabItemTap : function(e) {
console.log(e);
// e的返回格式為json對象: {"index":0,"text":"首頁","pagePath":"pages/index/index"}
},
onNavigationBarButtonTap 參數(shù)說明:
屬性 | 類型 | 說明 |
---|---|---|
指數(shù) | 數(shù) | 原生標題欄按鈕方塊的下標 |
onNavigationBarButtonTap : function (e) {
console.log(e);
// e的返回格式為json對象:{"text":"測試","index":0}
}
onBackPress 某些參數(shù)對象說明:
屬性 | 類型 | 說明 |
---|---|---|
從 | 串 | 觸發(fā)返回行為的來源:'backbutton'-左上角導航欄按鈕和安卓返回鍵;'navigateBack'-uni.navigateBack()方法。支付寶小程序端不支持返回此字段 |
export default {
data() {
return {};
},
onBackPress(options) {
console.log('from:' + options.from)
}
}
注意
uni-app
組件支持的生命周期,與 vue 標準組件的生命周期相同。這里沒有頁面級的 onLoad 等生命周期:
函數(shù)名 | 說明 | 平臺差異說明 | 最低版本 |
---|---|---|---|
beforeCreate | 在實例初始化之后被調(diào)用。詳見 | ||
created | 在實例創(chuàng)建完成后被立即調(diào)用。詳見 | ||
beforeMount | 在掛載開始之前被調(diào)用。詳見 | ||
mounted | 掛載到實例上去之后調(diào)用。詳見 注意:此處并不能確定子組件被全部掛載,如果需要子組件完全掛載之后在執(zhí)行操作可以使用$nextTick Vue官方文檔
|
||
beforeUpdate | 數(shù)據(jù)更新時調(diào)用,發(fā)生在虛擬 DOM 打補丁之前。詳見 | 僅 H5 平臺支持 | |
updated | 由于數(shù)據(jù)更改導致的虛擬 DOM 重新渲染和打補丁,在這之后會調(diào)用該鉤子。詳見 | 僅 H5 平臺支持 | |
beforeDestroy | 實例銷毀之前調(diào)用。在這一步,實例仍然完全可用。詳見 | ||
destroyed | Vue 實例銷毀后調(diào)用。調(diào)用后,Vue 實例指示的所有東西都會解綁定,所有的事件監(jiān)聽器會被移除,所有的子實例也會被銷毀。詳見 |
更多建議: