一,App()
用來註冊一個小程式。在小程序啟動的時候調用,並創建小程序,直到銷毀。在整個小程式的生命週期過程中,它都是存在的。很顯然它是單例的,全域的。所以,
1)只能在app.js中註冊一次。
2)在程式碼的任何地方都可以透過getApp() 取得這個唯一的小程式單例,
例如var appInstance = getApp();
App()的參數是object 類型{} ,指定了小程式的宣告週期函數。
onLaunch 函數
#監聽小程式初始化。
當小程式初始化完成時,會觸發 onLaunch(全域只觸發一次)。
onShow 函數
#監聽小程式顯示。
當小程式啟動,或從後台進入前台顯示,會觸發。
onHide 函數
#監聽小程式隱藏。
當小程式從前台進入後台,會觸發。
所謂前後台的定義,類似於手機上的app,例如當不在使用微信時,就進入了後台。
globalData 物件
#全域資料。
程式碼與日誌參考,如下動圖:
二、Page()函數
#透過App()註冊完成小程式之後,框架就開始註冊頁面。所以不要在App()的 onLaunch 中呼叫 getCurrentPage() 方法,因為此時頁面還沒有註冊完成。
同樣的Page()也是有生命週期的。當頁面註冊完成之後,可以在 page.js 檔案中呼叫 getCurrentPage() 方法,取得目前頁面物件。
2.1,Page()的參數也是Object型別。
onLoad
監聽頁面載入
#頁面剛開始載入的時候觸發。只會呼叫一次。
onReady
監聽頁面初步渲染完成
##類似html的 onReady。只會呼叫一次。
onShow 監聽頁面顯示
頁面顯示的時候觸發,例如頁面切換
onHide 監聽頁面隱藏
#和onShow對應
onUnload 監聽頁面卸載
#在redirectTo 或navigateBack 的時候呼叫
1)需要在config的window選項中開啟enablePullDownRefresh。
2)當處理完資料刷新後,wx.stopPullDownRefresh 可以停止目前頁面的下拉刷新。
onReachBottom
頁面上拉觸底事件的處理函數
##data
#頁面的初始資料
#2.2,Page.prototype.setData()
Page的函數setData() 用於頁面初始資料data的修改。如果該資料綁定到了視圖層wxml中展示,那麼無須刷新,視圖層就會反映出修改。
對於data的修改,只能使用 setData() ,不能直接透過 this.data 進行修改。資料量限制在 1024 kb以內。
2.3,getCurrentPages()#,取得目前頁面堆疊的實例,以陣列形式按堆疊的順序給出,第一個元素為首頁,最後一個元素為目前頁面。
2.4,案例動圖
三、頁面堆疊
框架以堆疊的形式維護了目前的所有頁面。 當發生路由切換的時候,頁面堆疊的表現如下:
#路由方式 | # #頁面堆疊表現
|
|
#新頁面入堆疊 | ||
新頁面入堆疊 | ||
新頁面入堆疊 |
||
新頁面入棧 |
||
新頁面入堆疊 |
路由方式 | #路由後頁面 |
路由前頁 |
#初始化 |
|
onShow |
#開啟新頁面 |
##」開啟新頁面 | |
onLoad, | onShow #onHide |
頁重定向 |
onLoad, | onShow | onUnload |
|