一,App()
用來注冊一個小程序。愛掏網 - it200.com在小程序啟動的時候調用,并創建小程序,直到銷毀。愛掏網 - it200.com在整個小程序的生命周期過程中,它都是存在的。愛掏網 - it200.com很顯然它是單例的,全局的。愛掏網 - it200.com所以,
1)只能在app.js中注冊一次。愛掏網 - it200.com
2)在代碼的任何地方都可以通過 getApp() 獲取這個唯一的小程序單例,
比如 var appInstance = getApp();
App()的參數是 object 類型 {} ,指定了小程序的聲明周期函數。愛掏網 - it200.com
onLaunch 函數
監聽小程序初始化。愛掏網 - it200.com
當小程序初始化完成時,會觸發 onLaunch(全局只觸發一次)。愛掏網 - it200.com
onShow 函數
監聽小程序顯示。愛掏網 - it200.com
當小程序啟動,或從后臺進入前臺顯示,會觸發。愛掏網 - it200.com
onHide 函數??
監聽小程序隱藏。愛掏網 - it200.com
當小程序從前臺進入后臺,會觸發。愛掏網 - it200.com
所謂前后臺的定義,類似于手機上的app,比如當不在使用微信時,就進入了后臺。愛掏網 - it200.com
globalData 對象
全局數據。愛掏網 - it200.com
代碼和日志參考,如下動圖:
二、Page()函數
通過App()注冊完成小程序之后,框架就開始注冊頁面。愛掏網 - it200.com所以不要在App()的 onLaunch 中調用 getCurrentPage() 方法,因為此時頁面還沒有注冊完成。愛掏網 - it200.com
同樣的Page()也是有生命周期的。愛掏網 - it200.com當頁面注冊完成之后,可以在 page.js 文件中調用 getCurrentPage() 方法,獲取當前頁面對象。愛掏網 - it200.com
2.1,Page()的參數也是Object類型。愛掏網 - it200.com
onLoad??
監聽頁面加載
頁面剛開始加載的時候觸發。愛掏網 - it200.com只會調用一次。愛掏網 - it200.com
onReady
監聽頁面初次渲染完成
類似于html的 onReady。愛掏網 - it200.com只會調用一次。愛掏網 - it200.com
onShow??
監聽頁面顯示
頁面顯示的時候觸發,比如頁面切換
onHide
監聽頁面隱藏
和onShow對應
onUnload????
監聽頁面卸載
在 redirectTo 或 navigateBack 的時候調用
onPullDownRefresh? ?
監聽用戶下拉動
1)需要在config的window選項中開啟enablePullDownRefresh。愛掏網 - it200.com
2)當處理完數據刷新后,wx.stopPullDownRefresh 可以停止當前頁面的下拉刷新。愛掏網 - it200.com
onReachBottom ??
頁面上拉觸底事件的處理函數
data
頁面的初始數據
2.2,Page.prototype.setData()
Page的函數 setData() 用于頁面初始數據data的修改。愛掏網 - it200.com如果該數據綁定到了視圖層wxml中展示,那么無須刷新,視圖層就會反映出修改。愛掏網 - it200.com
對于data的修改,只能使用 setData() ,不能直接通過 this.data 進行修改。愛掏網 - it200.com數據量限制在 1024 kb以內。愛掏網 - it200.com
2.3,getCurrentPages()
,獲取當前頁面棧的實例,以數組形式按棧的順序給出,第一個元素為首頁,最后一個元素為當前頁面。愛掏網 - it200.com
2.4,案例動圖
三、頁面棧
框架以棧的形式維護了當前的所有頁面。愛掏網 - it200.com 當發生路由切換的時候,頁面棧的表現如下:
路由方式? ? | 頁面棧表現 |
初始化 |
新頁面入棧 |
打開新頁面 |
新頁面入棧 |
頁面重定向 |
當前頁面出棧, 新頁面入棧 |
頁面返回 |
頁面不斷出棧,直到目標返回頁面, 新頁面入棧 |
Tab 切換 |
當前頁面出棧, 新頁面入棧 |
四、生命周期
下圖說明了 Page 實例的生命周期。愛掏網 - it200.com
五,頁面路由
路由方式 | 路由后頁面 |
路由前頁面 |
初始化 |
onLoad, onShow |
|
打開新頁面 |
onLoad, onShow |
onHide |
頁面重定向 |
onLoad, onShow |
onUnload |
頁面返回 |
onShow |
onUnload(多層頁面返回每個頁面都會按順序觸發onUnload) |
Tab 切換 |
第一次打開 onLoad,onshow; 否則 onShow |
onHide |
更多微信小程序開發教程-App()和Page()函數概述相關文章請關注愛掏網 - it200.com!