微信小程序6 - 页面之间传参及通知系统封装
生活随笔
收集整理的這篇文章主要介紹了
微信小程序6 - 页面之间传参及通知系统封装
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 簡單傳參
wx.navigateTo({ url: '/pages/demo/index/index?id=1' }) /pages/demo/index/index.js 中 onLoad(options){ var id = options.id; //獲取通過url參數傳遞來的參數 } 2. 復雜傳參 var json = JSON.stringify({a:1}); 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時,會銷毀所有本頁面的監聽轉載于:https://www.cnblogs.com/jifsu/p/7851183.html
總結
以上是生活随笔為你收集整理的微信小程序6 - 页面之间传参及通知系统封装的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 高级开发面试题
- 下一篇: FAT和EXFAT文件系统