wx.navigateTo({
url: '/pages/demo/index/index?json='+ json
})
/pages/demo/index/index.js 中
onLoad(options){
var json = JSON.parse(options.json); //獲取經過url參數傳遞來的參數 , 反解爲json對象
}
3.
1 寫入storage
2 寫入app.globalData
3 寫入 其餘自定義的全局容器內
以上123點均可以實現數據的傳輸.都是方式之一
4. 通知系統進行 數據傳輸
對於大數據量的傳輸.這個過程可能會涉及到數據量,解析反解性能,或特殊字符等因素的干擾.
以上1,2,3介紹的傳輸方式,只針對頁面跳轉前進有效,對於頁面後退 如: 選擇城市,選擇日期等控件型頁面,處理則要麻煩一些. 引入通知系統,則要方便許多
Notification 通知系統, 代碼來自github
作了一些擴展. 所謂的通知,也可叫 訂閱-發佈模式, 觀察者模式 ....
即 有一個全局的通知模塊,接收 訂閱消息者,接收定向發佈消息者.消息發送過來,會檢查有沒有訂閱這個消息的人,有則主動推送消息給對方(具體爲某個頁面)
原始代碼見:
github地址: https://github.com/icindy/WxNotificationCenter
咱們封裝並擴展了這個邏輯 , 編碼
使用 self.
addNotifyListener("訂閱名稱"); 註冊訂閱者 -- 訂閱頁面調用
使用 self.onNotify(data消息傳輸的數據,"訂閱名稱") 處理消息 -- 訂閱頁面處理
使用 self.removeNotifyListener("訂閱名稱") 移除消息訂閱 -- 訂閱頁面處理, 通常 不須要手工調用, 在 擴展Page參數一章中的處理,已經封裝了消息的銷燬邏輯
使用 self.
postNotify
("訂閱名稱",data消息傳輸的數據) 發佈消息 -- 發佈頁面調用 (和訂閱頁面能夠是同一個,通常都是最後打開的控件頁面,好比 城市選擇控件)
控件使用通知傳遞消息,能夠見 pages/selectCity/index.js pages/datepicker/datepicker/index.js 引用頁面, 主頁->當即定製
封裝後:
每一個Page打開,都會註冊一個 當前route.url 爲名稱的監聽
Page Onload時,會首先判斷有沒有給本身的 消息,有則直接處理
Page OnUnload時,會銷燬全部本頁面的監聽