每個小程序都需要在 app.js
中調用 App
方法註冊小程序實例,綁定生命週期回調函數、錯誤監聽和頁面不存在監聽函數等。
/** 生命週期回調—監聽頁面加載
*
* 頁面加載時觸發。一個頁面只會調用一次,可以在 onLoad 的參數中獲取打開當前頁面路徑
中的參數。
*/
onLoad(
/** 打開當前頁面路徑中的參數 */
query: Record<string, string | undefined>,
): void
/** 生命週期回調—監聽頁面顯示
*
* 頁面顯示/切入前臺時觸發。
*/
onShow(): void
/** 生命週期回調—監聽頁面初次渲染完成
*
* 頁面初次渲染完成時觸發。一個頁面只會調用一次,代表頁面已經準備妥當,可以和視圖層進
行交互。
*
* 注意:對界面內容進行設置的 API 如`wx.setNavigationBarTitle`,請在`onReady`之後
進行。
*/
onReady(): void
/** 生命週期回調—監聽頁面隱藏
*
* 頁面隱藏/切入後臺時觸發。 如 `navigateTo` 或底部 `tab` 切換到其他頁面,小程序切
入後臺等。
*/
onHide(): void
/** 生命週期回調—監聽頁面卸載
*
* 頁面卸載時觸發。如`redirectTo`或`navigateBack`到其他頁面時。
*/
onUnload(): void
/** 監聽用戶下拉動作
*
* 監聽用戶下拉刷新事件。
* - 需要在`app.json`的`window`選項中或頁面配置中開啓`enablePullDownRefresh`。
* - 可以通過`wx.startPullDownRefresh`觸發下拉刷新,調用後觸發下拉刷新動畫,效果
與用戶手動下拉刷新一致。
* - 當處理完數據刷新後,`wx.stopPullDownRefresh`可以停止當前頁面的下拉刷新。
*/
onPullDownRefresh(): void
/** 頁面上拉觸底事件的處理函數
*
* 監聽用戶上拉觸底事件。
* - 可以在`app.json`的`window`選項中或頁面配置中設置觸發距離
`onReachBottomDistance`。
* - 在觸發距離內滑動期間,本事件只會被觸發一次。
*/
onReachBottom(): void
/** 用戶點擊右上角轉發
*
* 監聽用戶點擊頁面內轉發按鈕(`<button>` 組件 `open-type="share"`)或右上角菜單
“轉發”按鈕的行爲,並自定義轉發內容。
*
* **注意:只有定義了此事件處理函數,右上角菜單纔會顯示“轉發”按鈕**
*
* 此事件需要 return 一個 Object,用於自定義轉發內容
*/
onShareAppMessage(
/** 分享發起來源參數 */
options: IShareAppMessageOption,
): ICustomShareContent
/** 頁面滾動觸發事件的處理函數
*
* 監聽用戶滑動頁面事件。
*/
onPageScroll(
/** 頁面滾動參數 */
options: IPageScrollOption,
): void
/** 當前是 tab 頁時,點擊 tab 時觸發,最低基礎庫: `1.9.0` */
onTabItemTap(
/** tab 點擊參數 */
options: ITabItemTapOption,
): void
/** 窗口尺寸改變時觸發,最低基礎庫:`2.4.0` */
onResize(
/** 窗口尺寸參數 */
options: IResizeOption,
): void
整個小程序只有一個 App 實例,是全部頁面共享的。開發者可以通過 getApp
方法獲取到全局唯一的 App 實例,獲取App上的數據或調用開發者註冊在 App
上的函數。
// xxx.js
const appInstance = getApp()
console.log(appInstance.globalData) // I am global data