摘要:接受一個(gè)參數(shù),其指定小程序的生命周期回調(diào)等。前臺(tái)后臺(tái)定義當(dāng)用戶點(diǎn)擊左上角關(guān)閉,或者按了設(shè)備鍵離開微信,小程序并沒有直接銷毀,而是進(jìn)入了后臺(tái)當(dāng)再次進(jìn)入微信或再次打開小程序,又會(huì)從后臺(tái)進(jìn)入前臺(tái)。
1. 注冊(cè)小程序
---------- 用App() 函數(shù)來注冊(cè)一個(gè)小程序。接受一個(gè) Object 參數(shù),其指定小程序的生命周期回調(diào)等。它必須在 app.js 中調(diào)用,必須調(diào)用且只能調(diào)用一次。不然會(huì)出現(xiàn)無法預(yù)期的后果。
前臺(tái)、后臺(tái)定義: 當(dāng)用戶點(diǎn)擊左上角關(guān)閉,或者按了設(shè)備 Home
鍵離開微信,小程序并沒有直接銷毀,而是進(jìn)入了后臺(tái);當(dāng)再次進(jìn)入微信或再次打開小程序,又會(huì)從后臺(tái)進(jìn)入前臺(tái)。需要注意的是:只有當(dāng)小程序進(jìn)入后臺(tái)一定時(shí)間,或者系統(tǒng)資源占用過高,才會(huì)被真正的銷毀。
App({ onLaunch: function(options) { // 小程序初始化完成時(shí)(全局只觸發(fā)一次) options包含小程序的初始path,query,scene(場(chǎng)景值),shareTicket,referrerInfo.appId,referrerInfo.extraData(scene=1037或1038時(shí)支持) }, onShow: function(options) { // Do something when show.小程序啟動(dòng),或從后臺(tái)進(jìn)入前臺(tái)顯示時(shí) 參數(shù)與onLaunch一致 }, onHide: function() { // Do something when hide.小程序從前臺(tái)進(jìn)入后臺(tái)時(shí) }, onError: function(msg) { console.log(msg) //小程序發(fā)生腳本錯(cuò)誤,或者 api 調(diào)用失敗時(shí)觸發(fā),會(huì)帶上錯(cuò)誤信息 }, onPageNotFound:function(){ //頁面不存在監(jiān)聽函數(shù), 小程序要打開的頁面不存在時(shí)觸發(fā),會(huì)帶上頁面信息回調(diào)該函數(shù) 不存在頁面的path,打開不存在頁面的query,是否是本次啟動(dòng)的首個(gè)頁面isEntryPage } > 開發(fā)者可以在 onPageNotFound 回調(diào)中進(jìn)行重定向處理,但必須在回調(diào)中同步處理,異步處理(例如 setTimeout > 異步執(zhí)行)無效 App({ onPageNotFound(res) { wx.redirectTo({ url: "pages/..." }) // 如果是 tabbar 頁面,請(qǐng)使用 wx.switchTab } }) > 如果開發(fā)者沒有添加 onPageNotFound 監(jiān)聽,當(dāng)跳轉(zhuǎn)頁面不存在時(shí),將推入微信客戶端原生的頁面不存在提示頁面。 如果 onPageNotFound 回調(diào)中又重定向到另一個(gè)不存在的頁面,將推入微信客戶端原生的頁面不存在提示頁面,并且不再回調(diào) onPageNotFound。 globalData: "I am global data" })2. 注冊(cè)頁面
Page(Object) 函數(shù)用來注冊(cè)一個(gè)頁面。接受一個(gè) Object 類型參數(shù),其指定頁面的初始數(shù)據(jù)、生命周期回調(diào)、事件處理函數(shù)等。
生命周期:
Page({ data: { text: "This is page data." }, onLoad: function(options) { // Do some initialize when page load.監(jiān)聽頁面加載 options中有打開當(dāng)前頁面路徑中的參數(shù) }, onReady: function() { // Do something when page ready.監(jiān)聽頁面顯示 }, onShow: function() { // Do something when page show.監(jiān)聽頁面初次渲染完成,代表頁面已經(jīng)準(zhǔn)備妥當(dāng),可以和視圖層進(jìn)行交互 }, onHide: function() { // Do something when page hide.監(jiān)聽頁面隱藏,如 navigateTo 或底部 tab 切換到其他頁面,小程序切入后臺(tái) }, onUnload: function() { // Do something when page close.監(jiān)聽頁面卸載,如redirectTo或navigateBack到其他頁面時(shí)。 } })
頁面事件處理函數(shù):
onPullDownRefres
監(jiān)聽用戶下拉刷新事件。
需要在app.json的window選項(xiàng)中或頁面配置中開啟enablePullDownRefresh。
可以通過wx.startPullDownRefresh觸發(fā)下拉刷新,調(diào)用后觸發(fā)下拉刷新動(dòng)畫,效果與用戶手動(dòng)下拉刷新一致。
當(dāng)處理完數(shù)據(jù)刷新后,wx.stopPullDownRefresh可以停止當(dāng)前頁面的下拉刷新。
onReachBottom()
監(jiān)聽用戶上拉觸底事件。
可以在app.json的window選項(xiàng)中或頁面配置中設(shè)置觸發(fā)距離onReachBottomDistance。
在觸發(fā)距離內(nèi)滑動(dòng)期間,本事件只會(huì)被觸發(fā)一次。
onShareAppMessage:
監(jiān)聽用戶點(diǎn)擊頁面內(nèi)轉(zhuǎn)發(fā)按鈕(
from:為button時(shí),代表頁面內(nèi)轉(zhuǎn)發(fā)按鈕,為menu時(shí)表右上角轉(zhuǎn)發(fā) target:如果 from 值是 button,則 target 是觸發(fā)這次轉(zhuǎn)發(fā)事件的 button,否則為 undefined webViewUrl:頁面中包含組件時(shí),返回當(dāng)前 的url
注意:只有定義了此事件處理函數(shù),右上角菜單才會(huì)顯示“轉(zhuǎn)發(fā)”按鈕
此事件需要 return 一個(gè) Object,用于自定義轉(zhuǎn)發(fā)內(nèi)容,返回內(nèi)容如下: 轉(zhuǎn)發(fā)標(biāo)題title:當(dāng)前小程序名稱 轉(zhuǎn)發(fā)路徑path:轉(zhuǎn)發(fā)路徑 imageUrl:自定義圖片路徑
},
onPageScroll
option中有scrollTop,即頁面在垂直方向已滾動(dòng)的距離(單位px)
onTabItemTap
當(dāng)前是 tab 頁時(shí),點(diǎn)擊 tab 時(shí)觸發(fā)
console.log(item.index)
console.log(item.pagePath)
console.log(item.text)
自定義組件處理事件
viewTap: function() {
this.setData({
text: "Set some data for updating view."
}, function() {
// this is setData callback
})
}
getCurrentPages()
getCurrentPages()
用于獲取當(dāng)前頁面棧的實(shí)例,以數(shù)組形式按棧的順序給出,第一個(gè)元素為首頁,最后一個(gè)元素為當(dāng)前頁面。
不要嘗試修改頁面棧,會(huì)導(dǎo)致路由以及頁面狀態(tài)錯(cuò)誤。
不要在 App.onLaunch 的時(shí)候調(diào)用 getCurrentPages(),此時(shí) page 還沒有生成。
navigateTo, redirectTo 只能打開非 tabBar 頁面。
switchTab 只能打開 tabBar 頁面。
reLaunch 可以打開任意頁面。
頁面底部的 tabBar 由頁面決定,即只要是定義為 tabBar 的頁面,底部都有 tabBar。
調(diào)用頁面路由帶的參數(shù)可以在目標(biāo)頁面的onLoad中獲取。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/114100.html
摘要:接受一個(gè)參數(shù),其指定小程序的生命周期回調(diào)等。前臺(tái)后臺(tái)定義當(dāng)用戶點(diǎn)擊左上角關(guān)閉,或者按了設(shè)備鍵離開微信,小程序并沒有直接銷毀,而是進(jìn)入了后臺(tái)當(dāng)再次進(jìn)入微信或再次打開小程序,又會(huì)從后臺(tái)進(jìn)入前臺(tái)。 1. 注冊(cè)小程序 ---------- 用App() 函數(shù)來注冊(cè)一個(gè)小程序。接受一個(gè) Object 參數(shù),其指定小程序的生命周期回調(diào)等。它必須在 app.js 中調(diào)用,必須調(diào)用且只能調(diào)用一次。不然...
摘要:接受一個(gè)參數(shù),其指定小程序的生命周期回調(diào)等。前臺(tái)后臺(tái)定義當(dāng)用戶點(diǎn)擊左上角關(guān)閉,或者按了設(shè)備鍵離開微信,小程序并沒有直接銷毀,而是進(jìn)入了后臺(tái)當(dāng)再次進(jìn)入微信或再次打開小程序,又會(huì)從后臺(tái)進(jìn)入前臺(tái)。 1. 注冊(cè)小程序 ---------- 用App() 函數(shù)來注冊(cè)一個(gè)小程序。接受一個(gè) Object 參數(shù),其指定小程序的生命周期回調(diào)等。它必須在 app.js 中調(diào)用,必須調(diào)用且只能調(diào)用一次。不然...
摘要:建立該倉庫的目的主要是整理收集學(xué)習(xí)資源,統(tǒng)一管理,方便隨時(shí)查找。目前整合的學(xué)習(xí)資源只是前端方向的,可能會(huì)存在漏缺比較好的資源,需要慢慢的完善它,歡迎在該上補(bǔ)充資源或者提供寶貴的建議。 說明 平時(shí)的學(xué)習(xí)資源都比較的凌亂,看到好的資源都是直接收藏在瀏覽器的收藏夾中,這樣其實(shí)并不方便,整理在云筆記上,也不方便查看修改記錄,索性就整理在 github 上并開源出來,希望幫助大家能夠更快的找到需...
閱讀 6178·2021-11-22 15:32
閱讀 813·2021-11-11 16:54
閱讀 3156·2021-10-13 09:40
閱讀 2161·2021-09-03 10:35
閱讀 1824·2021-08-09 13:47
閱讀 1864·2019-08-30 15:55
閱讀 1932·2019-08-30 15:43
閱讀 2455·2019-08-29 17:06