本篇文章為大家帶來了關於uniapp聲明週期的相關知識,其中主要介紹了應用聲明週期、頁面生命週期以及組件生命週期的相關問題,希望對大家有幫助。
推薦:《uniapp教學》
##uni-app 支援如下應用生命週期函數:
#說明 | |||
---|---|---|---|
當 | uni-app 初始化完成時觸發(全域只觸發一次)
|
||
當 | uni-app 啟動,或從後台進入前台顯示
|
||
當 | uni-app 從前台進入後台 |
||
當 | uni-app 錯誤錯誤時觸發
|
||
對 | nvue 頁面發送的資料進行監聽,可參考 nvue 向vue 通訊
|
||
對未處理的Promise 拒絕事件監聽函數(2.8. 1 ) | |||
頁面不存在監聽函數 | |||
# 監聽系統主題變更 |
#函數名稱 | 說明 | 平台差異說明 | 最低版本 |
---|---|---|---|
onInit | 監聽頁面初始化,其參數同onLoad 參數,為上個頁面傳遞的數據,參數型別為Object(用於頁面傳參),觸發時機早於onLoad | #百度小程式 | 3.1.0 |
onLoad | 監聽頁面加載,其參數為上個頁面傳遞的數據,參數類型為Object(用於頁面傳參),參考範例 |
|
|
onShow | 監聽頁面顯示。頁面每次出現在螢幕上都會觸發,包括從下級頁麵返回露出目前頁面 | ||
onReady | 監聽頁面初次渲染完成。注意如果渲染速度快,會在頁面進入動畫完成前觸發 | ||
onHide | #監聽頁面隱藏 | ||
#onUnload | 監聽頁面卸載 | |
|
onResize | #監聽視窗尺寸變化 | App、微信小程式 | |
onPullDownRefresh | 監聽使用者下拉動作,一般用於下拉刷新,參考範例 | ||
onReachBottom | 頁面捲動到底部的事件(不是scroll-view滾到底),常用於下拉下一頁資料。請看下方注意事項 | ||
onTabItemTap | |||
微信小程式、QQ小程式、支付寶小程式、百度小程式、H5、App |
#onShareAppMessage |
||
微信小程式、QQ小程式、支付寶小程式、位元組小程式、飛書小程式、快手小程式 |
#onPageScroll |
||
nvue暫不支援 |
onNavigationBarButtonTap |
||
onBackPress | 監聽頁面返回,返回event = {from:backbutton、 navigateBack} ,backbutton 表示來源是左上角返回按鈕或android 返回鍵;navigateBack表示來源是uni. navigateBack ;詳細說明及使用:onBackPress 詳解。支付寶小程式只有真機能觸發,只能監聽非navigateBack引起的返回,不可阻止預設行為。 |||
#onNavigationBarSearchInputChanged | |||
#App、H5 | 1.6.0 | onNavigationBarSearchInputConfirmed | |
App、H5 | 1.6.0 | onNavigationBarSearchInputClicked | |
App、H5 | 1.6.0 | ##onShareTimeline | 監聽使用者點選右上角轉寄到朋友圈 |
2.8.1 | onAddToFavorites | ##監聽使用者點擊右上角收藏 |
onInit
使用注意力
onReachBottom
使用注意力可在pages. json裡定義具體頁面底部的觸發距離onReachBottomDistance,例如設為50,那麼滾動頁面到距離底部50px時,就會觸發onReachBottom事件。
如使用scroll-view導致頁面沒有捲動,則觸底事件不會被觸發。 scroll-view滾動到底部的事件請參考scroll-view的文檔
onPageScroll
(監聽滾動、滾動監聽、滾動事件)參數說明:
#屬性 | 型別 | 說明 |
---|---|---|
#scrollTop | #Number | 頁面在垂直方向已滾動的距離(單位px) |
#注意
onPageScroll
裡不要寫互動複雜的js,例如頻繁修改頁面。因為這個生命週期是在渲染層觸發的,在非h5端,js是在邏輯層執行的,兩層之間通訊是有損耗的。如果在滾動過程中,頻傳觸發兩層之間的資料交換,可能會造成卡頓。 onBackPress
上無法使用async
,會導致無法阻止預設回傳onPageScroll : function(e) { //nvue暂不支持滚动监听,可用bindingx代替 console.log("滚动距离为:" + e.scrollTop); },
onTabItemTap
回傳的json物件說明:
屬性 | 類型 | #說明 |
---|---|---|
index | String | 被點選tabItem的序號,從0開始 |
pagePath | String | 被點選tabItem的頁面路徑 |
text | String | #被點選tabItem的按鈕文字 |
注意
onTabItemTap : function(e) { console.log(e); // e的返回格式为json对象: {"index":0,"text":"首页","pagePath":"pages/index/index"} },
onNavigationBarButtonTap
參數說明:
屬性 | #類型 | #說明 |
---|---|---|
Number | 原生標題列按鈕陣列的下標 |
onBackPress 回呼參數物件說明:
類型 | 說明 | ||
---|---|---|---|
String | 觸發回傳行為的來源:'backbutton'——左上角導覽列按鈕及安卓回傳鍵;'navigateBack'——uni.navigateBack() 方法。 | 支付寶小程式端不支援傳回此欄位 |
函数名 | 说明 | 平台差异说明 | 最低版本 |
---|---|---|---|
beforeCreate | 在实例初始化之后被调用。详见 | ||
created | 在实例创建完成后被立即调用。详见 | ||
beforeMount | 在挂载开始之前被调用。详见 | ||
mounted | 挂载到实例上去之后调用。详见 注意:此处并不能确定子组件被全部挂载,如果需要子组件完全挂载之后在执行操作可以使用$nextTick Vue官方文档 |
||
beforeUpdate | 数据更新时调用,发生在虚拟 DOM 打补丁之前。详见 | 仅H5平台支持 | |
updated | 由于数据更改导致的虚拟 DOM 重新渲染和打补丁,在这之后会调用该钩子。详见 | 仅H5平台支持 | |
beforeDestroy | 实例销毁之前调用。在这一步,实例仍然完全可用。详见 | ||
destroyed | Vue 实例销毁后调用。调用后,Vue 实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。详见 |
推荐:《uniapp教程》
以上是深入淺析uni-app的生命週期的詳細內容。更多資訊請關注PHP中文網其他相關文章!