微信小程序~頁面注冊page


一 什么是page()

page(),是一個函數,用來注冊一個頁面,
接受一個object參數,
指定頁面的初始數據,生命周期函數,事件處理函數
等等

object參數說明:

(1)data (object)

頁面的初始數據
初始化數據
初始化數據將作為頁面的第一次渲染,
data將會以JSON的形式有邏輯層傳至渲染層 所以其數據必須是可以 轉成JSON的格式 (字符串,數字,布爾值,對象,數組) 渲染層可以通過WXML對數據進行綁定 
 
初始化數據示例代碼.png

(2)onLoad(function)

生命周期函數--監聽頁面加載
頁面加載onLoad
一個頁面只會調用一次
接收頁面參數可以獲取
wx.navigateTo,wx.redirectTo, <navigator/>中的query 

(3)onReady (function)

生命周期函數--監聽頁面初次渲染完成

(4)onShow (function)

生命周期函數--監聽頁面顯示 頁面顯示onShow 每次打開頁面都會調用一次 頁面初次渲染完成onReady 一個頁面只會調用一次,代表頁面已經准備妥當,可以和視圖層進行交互 對界面的設置如 wx.setNavigationBarTitle請在onReady之后設置 

(5)onHide (function)

生命周期函數--監聽頁面隱藏
頁面隱藏onHide
當navigateTo或者底部tab切換時候調用

(6)onUnload(function)

生命周期函數--監聽頁面卸載
頁面卸載onUnload
當redirectTo或者navigateBack的時候調用

(7)onPullDownRefresh (function)

頁面相關事件處理函數--監聽用戶下拉動作
頁面相關事件的處理函數
onPullDownRefresh:下拉刷新
監聽用戶下拉刷新事件
需要在config的window選項中開啟enablePullDownRefresh 當處理完數據刷新后, wx.stopPullDownRefresh可以停止當前頁面的下拉刷新 

(8)onReachBottom (function)

頁面上拉觸底事件的處理函數

(9)其他 (Any)

開發者可以添加任意的函數或者數據到object參數中,
在頁面的函數中用this可以訪問 
 
page示例代碼.png

二 事件處理函數

除了初始化數據和生命周期函數,
page中還可以定義一些特殊的函數,
事件處理函數,
在渲染層可以在組件中加入事件綁定,
當達到觸發事件后,
就會執行page中定義的事件處理函數
 
事件處理函數示例代碼.png

(1)Page.prototype.setData()

setData
函數用於將數據從邏輯層發送到視圖層,
同時改變對應的 this.data的值 注意: 直接修改 this.data 無效, 無法改變頁面的狀態, 還會造成數據不一致。 單次設置的數據不能超過1024kB, 請盡量避免一次設置過多的數據 
setData()參數格式
接受一個對象,
以key,value的形式表示將this.data中的key對應的值改為value key可以非常靈活,以數據路徑的形式給出 
 
setData()函數示例代碼(1).png
 
setData()函數示例代碼(2).png

(2)getCurrentPages()

getCurrentPages() 函數用於獲取當前頁面棧的實例,
以數組形式按棧的順序給出,第一個元素為首頁,最后一個參數是當前頁
注意:不要嘗試修改頁面棧,會導致路由以及頁面狀態錯誤

三 頁面棧

框架以棧的形式維護了當前的所有頁面,當發生路由切換的時候,頁面棧的表現如下:
初始化 新頁面入棧
打開新頁面   新頁面入棧
頁面重定向   當前頁面出棧,新頁面入棧
頁面返回    頁面不斷出棧,直到目標返回頁,新頁面入棧
Tab 切換  當前頁面出棧,新頁面入棧

四 生命周期

 
生命周期圖(1).png
 
生命周期圖(2).png

五 頁面的路由

在小程序中,所有頁面的路由全部由框架進行管理,對於路由的觸發方式以及頁面生命周期函數如下:
路由方式——觸發時機——路由后頁面——路由當前頁
(1)
初始化——
小程序打開的第一個頁面——onLoad,onShow
(2)
打開新頁面——
調用API(wx.navigateTo)或者使用組件<navigator/>——onLoad,onShow—— onHide (3) 頁面重定向—— 調用 API (wx.redirectTo)或使用組件 <navigator />——onLoad,onShow—— onUnload (4) 頁面返回—— 調用API(wx.navigateBack)或者用戶按左上角返回按鈕——onShow—— onUnload(多層頁面返回每個頁面都會按順序觸發onUnload) (5) Tab 切換—— 多 Tab 模式下用戶切換 Tab—— 第一次打開 onLoad,onshow;否則 onShow—— onHide 
 


 

 

 

 

 

.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM