位置: IT常识 - 正文

[uniapp] 跨页面传值 uni.$emit 和 uni.$on 的使用方法 以及遇到的坑(uniapp跨域解决方案)

编辑:rootadmin

推荐整理分享[uniapp] 跨页面传值 uni.$emit 和 uni.$on 的使用方法 以及遇到的坑(uniapp跨域解决方案),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:uniapp跨平台,uniapp 页面之间传递数据,uniapp跨端,uniapp跨端,uniapp页面间传值,uniapp跨端,uniapp页面间传值,uniapp 跨页面传值,内容如对您有帮助,希望把文章链接给更多的朋友!

uni.$emit 和 uni.$on 是uniapp自带的跨页面传值   

vue 父子通讯可以用 props  this.$emit   这种简单的父子通讯紧适用于 页面和组件 或者 组件之间的传值,他并不适用于页面和页面的互相传值

那要实现页面通讯呢,我们一起来看看uni.$emit 和 uni.$on的使用方法

示例:

        A页面在 onload 中使用   uni.$on('自定义名称',function(data){}   接收   data为接收到的值

        B页面在事件中  使用    uni.$emit('自定义名称',{属性名称 : 属性值}) 并搭配使用 uni.navigateBack 跳回A页面     A页面的自定义名称要和B页面的自定义名称相同

代码:

        A    页面

// A 页面export default { data(){ return{ }; }, onload(){ uni.$on('add',function(res){ console.log(res.listData) // 为 B 页面传过来的值 )} },}

        B   页面

// B 页面export default { data(){ return{ listData:[1,2,3,4,5] }; }, methods:{ jump(){ uni.$emit('add',{listData:this.listData}) uni.navigateBack({ delta: 1 }); }, },}

这样就实现的页面和页面之间的通讯    

[uniapp] 跨页面传值 uni.$emit 和 uni.$on 的使用方法 以及遇到的坑(uniapp跨域解决方案)

但是  但是  但是 (重点!!!敲黑板)

 uni.$emit 和 uni.$on 都属于全局跨页面传参

所以在A页面  在 onUnload 周期 添加移除监听事件

  uni.$off('自定义名称');

// A 页面export default { data(){ return{ }; }, onload(){ uni.$on('add',function(res){ console.log(res.listData) // 为 B 页面传过来的值 )} }, onUnload() { // 移除监听事件 uni.$off('add'); },}

以上就解决了uniapp 跨页面传参

下面和大家分享一下  博主在使用uni.$emit 和 uni.$on 遇到的大坑

A页面 和 B 页面同时都 调用了 C页面 并且使用了uni.$on 并且名字是一样的

C页面 返回是方法  使用了  uni.$on 同时也使用了 uni.navigateBack 

A页面代码   

// A 页面export default { data(){ return{ }; }, onload(){ uni.$on('add',function(res){ console.log(res.listData) // 为 C 页面传过来的值 )} }, onUnload() { // 移除监听事件 uni.$off('add'); }, methods:{ // A 页面 跳转B页面 jumpB(){ uni.navigateTo({ url:'B' }) }, // A 页面 跳转C页面 jumpC(){ uni.navigateTo({ url:'C' }) }, },}

B页面代码

// B 页面export default { data(){ return{ }; }, onload(){ uni.$on('add',function(res){ console.log(res.listData) // 为 C 页面传过来的值 )} }, onUnload() { // 移除监听事件 uni.$off('add'); }, methods:{ // B 页面 跳转C页面 jumpC(){ uni.navigateTo({ url:'C' }) }, },}

C 页面

// C 页面export default { data(){ return{ listData:[1,2,3,4,5] }; }, methods:{ jump(){ uni.$emit('add',{listData:this.listData}) uni.navigateBack({ delta: 1 }); }, },}

  当A页面跳B页面   B页面跳到C页面          在A页面跳转到B页面然后B页面跳转到C页面  C页面修改完数据之后 AB页面的值都发生了改变

解决方法:AB页面的名称都一样   所以数据渲染混乱   这个时候把名字改成对应的就好了,

创作不易   如果对您有帮助 请留下赞再走吧

本文链接地址:https://www.jiuchutong.com/zhishi/297282.html 转载请保留说明!

上一篇:Cursor!!!GPT-4帮我写代码

下一篇:谷歌浏览器被hao123网页(或其他网页)劫持了,怎么办?(已解决)(谷歌浏览器被hao123锁定改不了)

  • 国际税收协定的名词解释
  • 进口环节消费税需要自行申报吗
  • 企业可以找审计人员吗
  • 冲减营业税金及附加的分录
  • 固定资产折旧的影响因素
  • 预收账款计入应纳税所得额
  • 我国进口货物交税如何计算? 
  • 承兑汇票打折支付如何账务处理?
  • 预收物业费是否必须开具发票
  • 个人可以去税务局开票吗?
  • 个人所得税扣除的
  • 交纳经营所得的个税怎么做分录?
  • 公司利润如何分配到个人
  • 怎么更正以前年度企业所得税
  • 递延收益摊销会计分录
  • 社会保险生育险能报多少
  • 出纳违规支付承担啥责任?
  • 农行k宝企业网银无法登录
  • php怎么添加样式
  • window11安装失败
  • 支付给代理机构的手续费
  • 企业所得税具体纳税筹划案例
  • 酒店的押金怎么做账
  • 营改增后固定资产报废处置收入计税
  • 期末库存盘点表
  • python结合
  • 在报税显示缺少税种信息
  • 无形资产有进项税吗
  • 金税盘锁死状态
  • 技术部周报怎么写
  • 进项税额销项税额
  • 多线程并发python
  • 电子客票行程单怎么获取
  • 短期投资的入账成本
  • 小规模超500万升一般纳税人规定
  • 应收债款的融资属于
  • 年度财务报表分为哪几类
  • 差旅费必须填写差旅费报销单吗
  • 要求供应商赔偿说明函范本
  • 不确认递延所得税资产的特殊情况举例
  • 企业所有者权益是什么意思
  • 企业可以一次性现金的方式发放工资
  • concat group
  • 小规模教育培训怎样纳税
  • 申报企业所得税会计分录怎么写
  • 村委会靠什么赚钱
  • 撤回或减少投资所得税处理
  • 破产清算应收账款怎么评估
  • 以前年度损益调整怎么结转
  • 持有至到期投资减值准备可以转回吗
  • 共管账户取钱需要多久到账
  • 企业每月营业额达多少需要交税
  • 总公司调拨子公司怎么办
  • 企业所有者权益在数量上等于
  • 发票几个月内可以红冲
  • 计入税金及附加借方的内容
  • 金税盘维护费抵减分录
  • 不需要缴纳税款的企业
  • 企业应该设置的账薄
  • 新公司要建哪些项目
  • sql注入修补方法
  • sql Server 触发器的when的用法
  • win10右键自动弹出
  • 英文版西游记
  • Ubuntu上安装anaconda
  • 制作linux的u盘安装盘
  • ims文件是什么意思
  • win10系统网络连接配置异常
  • linux删除sdb1
  • cocos2d-js-min.js
  • linux运行环境搭建
  • 显示网络配置的命令
  • 安卓录制音频
  • android需要学什么
  • javascript 触发事件列表 比较不错
  • python os.walk遍历目录
  • javascript如何
  • 如何找回电子税务局企业密码
  • 国税开票二维码图片
  • 环保税2018年开征文件
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设