uni-app 是一個(gè)使用 Vue.js 開(kāi)發(fā)所有前端應(yīng)用的框架,可以編譯到 iOS、Android、H5、以及各種小程序等多個(gè)平臺(tái)。以下是 uni-app 頁(yè)面生命周期的詳細(xì)介紹,包括一些簡(jiǎn)單的示例:
初始化階段
onLoad(options)
- 觸發(fā)時(shí)機(jī):頁(yè)面加載時(shí)觸發(fā),且只觸發(fā)一次。
- 參數(shù): 是一個(gè)包含頁(yè)面路徑參數(shù)的對(duì)象。
- 示例:從上一個(gè)頁(yè)面?zhèn)鬟f參數(shù)到當(dāng)前頁(yè)面。
onShow()
- 觸發(fā)時(shí)機(jī):頁(yè)面顯示時(shí)觸發(fā),包括頁(yè)面加載和從后臺(tái)切到前臺(tái)。
- 示例:更新頁(yè)面數(shù)據(jù)。
渲染階段
onReady()
- 觸發(fā)時(shí)機(jī):頁(yè)面初次渲染完成時(shí)觸發(fā),且只觸發(fā)一次。
- 示例:初始化頁(yè)面中的圖表。
運(yùn)行階段
onHide()
- 觸發(fā)時(shí)機(jī):頁(yè)面隱藏時(shí)觸發(fā),如頁(yè)面跳轉(zhuǎn)或應(yīng)用切入后臺(tái)等。
- 示例:停止視頻播放。
銷(xiāo)毀階段
onUnload()
- 觸發(fā)時(shí)機(jī):頁(yè)面卸載時(shí)觸發(fā),如頁(yè)面關(guān)閉。
- 示例:清除定時(shí)器。
事件處理
onPullDownRefresh()
- 觸發(fā)時(shí)機(jī):監(jiān)聽(tīng)用戶(hù)下拉動(dòng)作,用于下拉刷新。
- 示例:重新加載數(shù)據(jù)。
onReachBottom()
- 觸發(fā)時(shí)機(jī):頁(yè)面滾動(dòng)到底部時(shí)觸發(fā)。
- 示例:加載更多數(shù)據(jù)。
onShareAppMessage(options)
- 觸發(fā)時(shí)機(jī):用戶(hù)點(diǎn)擊右上角分享時(shí)觸發(fā)。
- 參數(shù): 是一個(gè)包含分享配置的對(duì)象。
- 示例:自定義分享內(nèi)容。
onPageScroll(Object)
- 觸發(fā)時(shí)機(jī):監(jiān)聽(tīng)頁(yè)面滾動(dòng)。
- 參數(shù): 包含 屬性。
- 示例:實(shí)現(xiàn)返回頂部按鈕的顯示與隱藏。
onTabItemTap(Object)
- 觸發(fā)時(shí)機(jī):點(diǎn)擊 tab 時(shí)觸發(fā)。
- 參數(shù): 包含 、、 等字段。
- 示例:記錄用戶(hù)點(diǎn)擊的 tab。
在 uni-app 中,以下是你提到的幾個(gè)生命周期函數(shù)和事件的詳細(xì)說(shuō)明:
onNavigationBarButtonTap
- 觸發(fā)時(shí)機(jī):當(dāng)點(diǎn)擊自定義導(dǎo)航欄按鈕時(shí)觸發(fā)。
- 用途:可以用于處理自定義導(dǎo)航欄按鈕的點(diǎn)擊事件。
- 示例:
onBackPress
- 觸發(fā)時(shí)機(jī):當(dāng)用戶(hù)點(diǎn)擊返回按鈕時(shí)觸發(fā)。
- 用途:可以用于攔截返回行為,進(jìn)行一些自定義操作,比如彈窗確認(rèn)是否退出。
- 返回值:如果返回值為 ,則不會(huì)返回上一頁(yè)。
- 示例:
onNavigationBarSearchInputChanged
- 觸發(fā)時(shí)機(jī):當(dāng)自定義導(dǎo)航欄的搜索框輸入內(nèi)容變化時(shí)觸發(fā)。
- 用途:可以用于實(shí)現(xiàn)搜索框的實(shí)時(shí)搜索功能。
- 示例:
onNavigationBarSearchInputConfirmed
- 觸發(fā)時(shí)機(jī):當(dāng)用戶(hù)確認(rèn)搜索時(shí)觸發(fā)(通常是在搜索框輸入完成后點(diǎn)擊鍵盤(pán)的搜索按鈕)。
- 用途:可以用于處理搜索邏輯。
- 示例:
onNavigationBarSearchInputClicked
- 觸發(fā)時(shí)機(jī):當(dāng)用戶(hù)點(diǎn)擊自定義導(dǎo)航欄的搜索框時(shí)觸發(fā)。
- 用途:可以用于處理搜索框的點(diǎn)擊事件,比如彈出搜索歷史。
- 示例:
onShareTimeline
- 觸發(fā)時(shí)機(jī):當(dāng)用戶(hù)點(diǎn)擊右上角菜單中的“分享到朋友圈”按鈕時(shí)觸發(fā)。
- 用途:可以用于自定義分享到朋友圈的內(nèi)容。
- 示例:
onAddToFavorites
- 觸發(fā)時(shí)機(jī):當(dāng)用戶(hù)點(diǎn)擊右上角菜單中的“收藏”按鈕時(shí)觸發(fā)。
- 用途:可以用于自定義收藏的內(nèi)容。
- 示例:
特別注意的是,這些事件和生命周期函數(shù)的使用可能會(huì)根據(jù)不同的平臺(tái)(如小程序、H5、App)有所差異,差異入下圖:
{
return {
title: ‘收藏的標(biāo)題’,
imageUrl: ‘收藏的圖片URL’,
query: ‘收藏參數(shù)’
};
}
// …
};