程序跨页面通信的多种方式详细解读

GS 230 2024-06-26

本篇文章给大家分享几种常见的小程序跨页面之间通信的方式,有需要的可以参考。

浅谈小程序跨页面之间通信的几种方式

小程序是由一个个page构成的,如果存在路由栈为[A,B],A->B传值自然可以一层层传递,但是B->A传递数据就需要额外的辅助方式,以下讨论几种常见的方式。

1、localStorage + onShow

应用场景:A->B/B->A 都可

优点:简单操作,易理解

缺点:调用到storage,有可能设置失败;且设置后是持久缓存,可能污染原逻辑,应及时删除

应用示例

图片.png

2、globalData + onShow

应用场景:A->B/B->A 都可

优点:简单操作,易理解;直接操作globalData对象,相比于storage执行效率更高

缺点:设置后是小程序生命周期内都可访问,可能污染原逻辑,应及时删除

应用示例:

图片.png

3、小程序本身提供的 EventChannel

应用场景:主要是 B->A

优点:小程序原生提供,可随时销毁

缺点:仅限制在navigateTo中,且要求基础库版本不低于2.7.3

应用示例:

图片.png

4、自定义EventBus

应用场景:A->B/B->A 都可

优点:自定义实现,可扩展

缺点:对wx进行扩展自定义变量,相同eventName可能会重复绑定监听事件

EventBus: 参考这篇EventBus实现

应用示例:

图片.png

5、获取页面栈实例 getCurrentPages

应用场景:主要是 B->A

优点:小程序原生提供,处理逻辑基本都在B页面

缺点:需要增加匹配页面的相应规则,且路由栈至少有两个页面存在

应用示例:

图片.png

6、globalData proxy

暂时未试验这种方式,原理上可行;

相应的原理可参考Vue3的数据劫持和订阅通知相结合;

以上就是小程序跨页面通信的多种方式详细解读的详细内容,更多请关注-其它相关文章!

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:小程序“五星评价”功能实现方式 支持点击与滑动
下一篇:微信 H5 支付中 Referer 丢失问题的全面总结
相关文章

 发表评论

暂时没有评论,来抢沙发吧~