微信小程序之页面通信方式

文章目录

  • 一、前言
  • 二、页面通信是什么?
  • 三、传值的几种常用方式
    • 1.页面跳转传参
    • 2.页面跳转传入数据
    • 3.使用全局变量传递数据
    • 4.利用缓存进行传值
  • 四、小结


一、前言

提示:微信小程序中,页面间的通信方式很重要,通信方式也有很多种,其中最简单的有页面跳转时的传参**(/pages?event = ‘xxx’)**,还有更复杂的传参方式和传递的更复杂的值,下面是我在学习中使用过的几种常用的页面间的通信传值方式


二、页面通信是什么?

类似于vue中的组件传值,可以应用于很多场景,用的最多的则是路由跳转传值和获取上一页面的数据

三、传值的几种常用方式

1.页面跳转传参

一般用于从第一个页面跳转至第二个页面时(page页面---->page页面),传递的参数多数用于第二个页面发送http请求,从而拿到该参数对应数据,渲染页面。

代码如下(示例):

  wx.navigateTo({//可以使用反引号,用${}的形式,里面可以写入js表达式url: `/pages/index/index?id=${id}`,})

接收参数代码如下(示例):

  onLoad: function (options) {//接收参数console.log(options.id); //打印上一页面传递的id值},

2.页面跳转传入数据

一般用于获取上个页面的大量数据(page页面---->page页面),传参方式无法实现时,使用eventChannel事件,进行组件间的通讯
代码如下(示例)第一个页面:

 //跳转传值handleToSongDetail(e) {let { id } = e.currentTarget.datasetwx.navigateTo({url: '/pages/songDetail/songDetail?id=' + id,success: (res) => {// 发送一个tosongDetail事件 类似于vue 中的子组件向父组件传值 将所有歌曲id传到songDetail页面res.[eventChannel](https://developers.weixin.qq.com/miniprogram/dev/api/route/wx.navigateTo.html).emit('tosongDetail', { data: this.data.recommendSongList.map(v => v.id) })//将当前页面的全部id传到songDetail页面,实现下一首歌和下一首歌曲的切换功能}})}

eventChannel更详细使用方法见官方文档

代码如下(示例)第二个页面接收数据:

        //获取所有打开的EventChannel事件const eventChannel = this.getOpenerEventChannel();// 监听 recommendSong页面定义的tosongDetail事件,调用this.getOpenerEventChannel().on()方法eventChannel.on('tosongDetail', (res) => {this.setData({songListData: res.data})})

3.使用全局变量传递数据

app.js中定义一个全局的空属性,到当前页面获取全局属性,并且赋需要传递的值给这个全局属性,再到跳转之后的页面获取这个全局属性,用其进行相应的操作,之后再赋值为空
定义全局属性:

    App({globalData:{value:'',}
})

当前页面进行赋值(一般绑定一个回调函数进行相对应的触发才使用)

     const app = getApp()
Page({onLoad: function (options) {//将全局变量进行赋值app.globalData.value = '澳猪'console.log(app.globalData.value);  //打印 澳猪}
})

触发回调后,任意页面都可以使用,使用完之后赋值为空即可

4.利用缓存进行传值

存入缓存的数据会永远存在于小程序的存储中(进行第二次缓存当前key时,会覆盖掉原先的数据),除非进行删除,一般用于购物车页面跳转到支付页面时使用,还有历史记录等等,缓存的优势就是刷新页面和重新渲染页面,存入缓存的数据并不会清空。
进行缓存的代码简单,采用键值对 key : value 的形式即可

     wx.setStorageSync('goods', '澳猪') 

此时打开小程序控制台的Storage面板,即可看到写入的数据
在这里插入图片描述
将value改动一下

     wx.setStorageSync('goods', '澳猪变笨猪') 

此时缓存的值也会随之改变,缓存会覆盖掉原先的数据
在这里插入图片描述
获取缓存,使用get方法,在任何一个页面都可以获取

    //value为任意取的名字let value = wx.getStorageSync('goods')console.log(value); //打印 澳猪变笨猪

四、小结

页面间的通信在前端开发中使用非常广泛,希望对大家有所帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/40326.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【最新版全插件】多功能同城优选小程序源码

内容目录 一、详细介绍二、效果展示1.部分代码2.效果图展示 三、学习资料下载 一、详细介绍 1.为本地的线下商家提供线上销售渠道。一直以来本地商品、娱乐、休闲、旅游服务线上购买大家都是以美团为准。近几年来随着微信公众号、小程序的渗透力逐渐加强,越来越多的…

微信公众号开发之绑定微信开发者

第一步:登录微信公众号,绑定网页开发者 在登录后的界面中,我们向下拉在左侧会看到有一个“开发者工具”点击。 这时在开发者工具中,会看到有好几个工具,其中有一个“web开发者工具”,我们点击进入。 在这里…

微信公众号登录授权(全网发布)一键绑定公众号设置

微信公众号登录授权(全网发布)一键绑定公众号设置教程及常见问题 前言:本操作跟服务器配置,网络环境等综合环境有关(95%),另外存在5%的运气和人品。WeiDogs官方确保程序此功能正常并提供设置教程…

python微信公众号微信用户绑定第三方网站

场景 例如,某用户在第三方购物平台的账号(user_id/手机号码等)需要跟该用户的微信账号进行绑定, 实现在该购物平台的微信公众号中查询个人信息, 消费记录, 充值记录等操作.总的来说便是,将微信用户的open_id跟第三方网址user_id/手机号码等进行一对一关联 实现方案 微信用户…

微信公众号开发—通过网页授权实现业务系统登录及用户绑定(微信网页授权自动登录业务系统)

😊 作者: 一恍过去 💖 主页: https://blog.csdn.net/zhuocailing3390 🎊 社区: Java技术栈交流 🎉 主题: 微信公众号开发—通过网页授权实现业务系统登录及用户绑定(微信网页授权…

微信授权登录流程以及公众号配置方法(golang后端)

一、准备一个已经认证OK的微信公众号和已经备案的域名,且解析好配置好https证书。 1.如上图 微信公众号 > 基本配置 ,设置开发者密码 2.设置IP白名单,白名单填写提供后端服务的服务器公网IP 二、公众号服务器配置。 1.找到基本配置 2.将服…

微信公众号用户与网站用户的绑定方案

现在很多网站都已经建立了一套完整的用户账号体系,基于这套体系,再做其他应用的用户扩展就非常方便。例如,有了微软的outlook账户,就可以登录win8,可以登录微软的邮箱,还可以登录skype。同样地,…

微信开放平台 帐号管理 绑定在同一个开放平台帐号下的公众号及小程序让用户unionid一致...

开发十年,就只剩下这套架构体系了! >>> 第三方平台在获得此权限后,可以代替已授权的公众号/小程序创建开放平台帐号或进行绑定/解绑操作。 绑定在同一个开放平台帐号下的公众号及小程序,用户unionid一致。开发者可调用…

wechat-0051,微信公众号,第三方登录—扫码绑定

声明:这边所谓的第三方登录,不是通过网页授权的方式,而是利用生成带参数的二维码,将微信号和平台账号绑定实现。如果你要做的是授权登录,请查看 https://blog.csdn.net/wrongyao/article/details/80229986 微信第三方…

IT创业项目 - 跟淘宝商城合作网赚项目,赚多少你说了算!

【项目介绍】: 使用淘宝商城的巨大流量销售产品或者服务。 【市场前景】: 淘宝网作为最大的B2C交易平台,淘宝商城又是淘宝网要点的发展对象,越来越多的年轻人喜爱在淘宝购买产品和服务。使用好淘宝的流量,赚钱十分简略。其实这是一…

微信公众号开发消息推送以及图文推送

今天给大家分享的关注公众号自动推送图文消息,以及做一个超牛逼的机器人。 先看看效果。 发错图了。。。这是我昨天开发的一款机器人chu了会骂人啥都不会了。我今天将它词库进行了更新和升级,接入了http://www.itpk.cn/ 机器人第三词库 先给你截图&…

【全网最简单】给朋友- 制作,微信公众号推送教程

简介: 前段时间,抖音非常火的微信公众号推送天气,生日,祝福等信息给女朋友专属推送,而且大部分都是Python写的,对于我来说,必须得整起,上java版本,到时候打个包&#xff…

小扎All in AIGC,连夜成立顶级产品团队

金磊 发自 凹非寺量子位 | 公众号 QbitAI ChatGPT的火爆,终究是让Meta坐不住了。 这不,小扎(扎克伯格)连夜对外宣布了公司的大动作: 成立顶级产品团队,专注AIGC。 这个团队可以说是整合了全公司搞AIGC的人才…

MySQL 被 PG 干翻!最赚钱的开发语言是他?

出品 | OSC开源社区(ID:oschina2013) Stack Overflow 发布了 2023 年开发者调查报告,据称共计超过 9 万名开发者参与了此次调查。 完整报告包含了受访开发者画像,以及关于开发技术、AI、职业、社区等方面的内容。本文主要介绍关于…

文心一言员工跳槽工资翻倍,猎头:百万年薪很正常

整理 | 朱珂欣 出品 | CSDN程序人生(ID:coder_life) 前段时间,国内外科技圈呈现出群雄逐“ChatGPT”的态势:谷歌官宣竞品 Bard 、微软发布 AI 驱动的新版 Bing 搜索引擎和 Edge 浏览器、百度官宣“文心一言”、网易…

AIGC分享交流平台、GPT-4、GPT实时联网、Claude

拥有无限畅谈的AI个人助理,提高效率和创造力,引领未来的智能生活; 不仅承载着最前沿的科技理念,更集成了对人工智能可能性的深度理解。 已支持基于GPT、Claude等主流大模型的对话内容生成、支持GPT联网查询实时信息;基…

2022年休闲游戏市场总结

在预测 2023 年之前,我们先回顾一下 2022 年。从上一年发生的事件中往往能看到未来趋势的影子,所以 2022 年的总结至关重要。 一、2022年总结回顾 1、流行游戏类型 回顾 2022 年,三种超休闲游戏表现最为突出: 跑酷游戏&#xff1a…

破解VProtect所有版本,PATCH HWID方式过注册

运行后: 本机机器码"195F9059606EEB4723128A216ED1426B”,在内存中搜索该字符串,可以得到3个地方,我这里以最后搜索到的地方为切入点, 为什么? 找到的3个地方都下内存断点判断,刚好最后找到…

新加坡国立大学学霸,《快乐机器学习》和《Python 从入门到入迷》作者,FRM,CAIA...

王的机器主理人 王圣元 (FRM, CAIA) 某加密货币公司 Head of Quant 冬海集团 SeaMoney 建模负责人 八方咨询 量化总监 新加坡国立大学金融数学硕士 新加坡国立大学量化金融学士 《快乐机器学习》的作者 《Python 从入门到入迷》的作者 第一本书 《快乐机器学习》 第二本书《Pyt…

瑞芯微推出RV1126性能/案例大评测

瑞芯微推出RV1126性能/案例大评测 目录 案例1:面部识别 案例2:图像分割 案例3:目标检测 一、车载录像性能提升一倍,支持8路1080p视频录像 二、内置2T独立NPU,AI效率更高 三、配备安防级ISP,确保夜拍高清晰度 四、存储空间扩容一倍,记录…