微信小程式——學習筆記(二):邏輯層(1)
阿新 • • 發佈:2018-11-26
邏輯層將資料進行處理後傳送給檢視層,同時接受檢視層的事件反饋。
用App()函式註冊一個小程式。
當小程式初始化完成時,會觸發 onLaunch(全域性只觸發一次)
當小程式啟動,或從後臺進入前臺顯示,會觸發 onShow
當小程式從前臺進入後臺,會觸發 onHide
當小程式發生指令碼錯誤,或者 api 呼叫失敗時,會觸發 onError 並帶上錯誤資訊
當小程式出現要開啟的頁面不存在的情況,會帶上頁面資訊回撥onPageNotFound函式
onLaunch和onshow的引數
path-開啟小程式的路徑
query-開啟小程式的query
scene-開啟小程式的場景值
shareTicket-
referrerInfo-當場景為由從另一個小程式或公眾號或App開啟時,返回此欄位
referrerInfo.appId-來源小程式或公眾號或App的 appId
referrerInfo.extraData-來源小程式傳過來的資料,scene=1037或1038時支援
onPageNotFound引數
path-不存在頁面的路徑
query-開啟不存在頁面的 query
isEntryPage-是否本次啟動的首個頁面
用getApp()函式可以用來獲取小程式例項
var appInstance = getApp()
console.log(appInstance.globalData)
App()
必須在app.js
中註冊,且不能註冊多個。- 不要在定義於
App()
內的函式中呼叫getApp()
,使用this
就可以拿到 app 例項。 - 不要在 onLaunch 的時候呼叫
getCurrentPages()
,此時 page 還沒有生成。 - 通過
getApp()
獲取例項之後,不要私自呼叫生命週期函式。
用Page()函式註冊一個頁面
屬性 | 型別 | 描述 |
---|---|---|
data | Object | 頁面的初始資料 |
onLoad | Function | 生命週期函式--監聽頁面載入 |
onReady | Function | 生命週期函式--監聽頁面初次渲染完成 |
onShow | Function | 生命週期函式--監聽頁面顯示 |
onHide | Function | 生命週期函式--監聽頁面隱藏 |
onUnload | Function | 生命週期函式--監聽頁面解除安裝 |
onPullDownRefresh | Function | 頁面相關事件處理函式--監聽使用者下拉動作 |
onReachBottom | Function | 頁面上拉觸底事件的處理函式 |
onShareAppMessage | Function | 使用者點選右上角轉發 |
onPageScroll | Function | 頁面滾動觸發事件的處理函式 |
onTabItemTap | Function | 當前是 tab 頁時,點選 tab 時觸發 |
其他 | Any | 開發者可以新增任意的函式或資料到 object 引數中,在頁面的函式中用 this 可以訪問 |
object 內容在頁面載入時會進行一次深拷貝,需考慮資料大小對頁面載入的開銷
初始化資料
初始化資料將作為頁面的第一次渲染。data 將會以 JSON 的形式由邏輯層傳至渲染層,所以其資料必須是可以轉成 JSON 的格式:字串,數字,布林值,物件,陣列。
渲染層可以通過 WXML 對資料進行繫結。
生命週期函式
onLoad
: 頁面載入- 一個頁面只會呼叫一次,可以在 onLoad 中獲取開啟當前頁面所呼叫的 query 引數。
onShow
: 頁面顯示- 每次開啟頁面都會呼叫一次。
onReady
: 頁面初次渲染完成- 一個頁面只會呼叫一次,代表頁面已經準備妥當,可以和檢視層進行互動。
- 對介面的設定如
wx.setNavigationBarTitle
請在onReady
之後設定。詳見生命週期
onHide
: 頁面隱藏- 當
navigateTo
或底部tab
切換時呼叫。
- 當
onUnload
: 頁面解除安裝- 當
redirectTo
或navigateBack
的時候呼叫。
- 當