免费国产欧美国日产_少妇AV一区二区三区无码_蜜桃精品av无码喷奶水小说_jk18禁网站视频_精产国品一二三级产品区别_被夫の上司に犯波多野结衣_78m成人手机免费看_最爽最刺激18禁视频_偷偷色噜狠狠狠狠的777米奇

易優(yōu)GEO 重磅上線 ~ 一站式GEO優(yōu)化工具,讓豆包、文心一言、DeepSeek 在回答中主動(dòng)推薦你的品牌,搶占AI流量入口!  點(diǎn)擊查看

小程序模板網(wǎng)

微信小程序不同頁面間的消息傳遞

發(fā)布時(shí)間:2018-04-13 14:37 所屬欄目:小程序開發(fā)教程

本文來自公眾號(hào):yogoup

 

場景

假設(shè)有兩個(gè)頁面:用戶列表頁、信息編輯頁

在列表中點(diǎn)擊后某條信息后,進(jìn)入編輯頁面 

修改了用戶信息后,返回到列表頁,列表中需要顯示修改后的信息

例如把 “李四” 改為了 “李六”,那么返回列表頁后,第2條記錄就應(yīng)該顯示的是 “李六”

 

如何更新?

例如可以重新加載列表,返回到列表頁時(shí),觸發(fā)的是onShow事件,那么就在 onShow 處理函數(shù)中重新請(qǐng)求數(shù)據(jù)進(jìn)行加載

但這樣做不太好處理用戶體驗(yàn)問題,例如修改的是經(jīng)過多次下拉翻頁后的某條用戶信息

也可以不用重新加載,在保存之后設(shè)置緩存,指明修改的用戶ID、修改后的數(shù)據(jù),然后在列表頁的onShow處理函數(shù)中讀取緩存,直接修改現(xiàn)有列表中的數(shù)據(jù)

 

解決

上面的更新方式都不太優(yōu)雅,建議使用 broadcast 廣播機(jī)制

列表頁設(shè)置監(jiān)聽,編輯頁修改完成后發(fā)送廣播通知

列表頁

 

				
  1. const broadcast = require("../../utils/broadcast")
  2.  
  3. ...
  4.  
  5. onLoad: function (options) {
  6. ...
  7.  
  8. // 設(shè)置廣播監(jiān)聽
  9. broadcast.on("broadcast_user_modified", (data) => {
  10. // 處理邏輯
  11. ...
  12. });
  13. }
  14.  
  15. ...
 

編輯頁

 

				
  1. const broadcast = require("../../utils/broadcast")
  2. ...
  3.  
  4. // 廣播
  5. broadcast.fire("broadcast_user_modified",
  6. {
  7. userid:user_id,
  8. ...
  9. }
  10. )
  11. ...

列表頁收到廣播后就會(huì)觸發(fā)處理函數(shù),取得廣播傳遞過來的數(shù)據(jù),對(duì)現(xiàn)有列表數(shù)據(jù)進(jìn)行修改,使用 setData 更新

從詳細(xì)頁返回到列表頁時(shí),列表中的數(shù)據(jù)就已經(jīng)是最新的了

 

小結(jié)

broadcast 是一個(gè)非常小巧實(shí)用的廣播工具,非常適合在不同頁面間傳遞消息



易優(yōu)小程序(企業(yè)版)+靈活api+前后代碼開源 碼云倉庫:starfork
本文地址:http://www.szcjxy.com/wxmini/doc/course/23337.html 復(fù)制鏈接 如需定制請(qǐng)聯(lián)系易優(yōu)客服咨詢: 點(diǎn)擊咨詢
在線客服