位置: 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锁定改不了)

  • 纳税人返税是什么意思
  • 房屋用途 居住用房 住宅 区别
  • 城建税计税方法
  • 税收广度
  • 建筑业的增值税税率是多少
  • 如何确定交易性金融资产
  • 个税年度汇算清缴截止时间
  • 科目余额表解析
  • 运输企业车辆折旧一次性折旧
  • 做账要不要入库单和出库单
  • 多缴纳个人所得税怎么办
  • 新公司成立后需要办理导航业务吗
  • 出口退税销项大于进项,需要交税吗
  • 法人存入公户实收资本可以还其他应付款吗
  • 税控系统维护费账务处理
  • 哪些房屋交易需要公证
  • 房地产企业增值税税率是多少
  • 文化传媒公司的经营模式怎么写
  • 花椒油的税率
  • 异地仓储概述
  • 工程物资应该计入哪里
  • 财务费用负数是什么意思
  • 向境外企业付外汇
  • 发放活动奖金支出怎么入账
  • 电商刷单支付的佣金会计分录
  • 非专利技术转让合同印花税
  • 收到房租的增值税税率
  • 员工旅游计入什么费用
  • 劳务报酬所得包括哪些?与工资薪金所得的区别?
  • 会计分录的正确书写格式图片
  • 分期服务费是啥
  • 企业的借款利息支出全部可以税前扣除吗
  • 贴现息等于什么
  • php 实例
  • 股票发行费用怎么算
  • 房产税的应纳税额计算方法
  • 财政补贴的内容分类
  • 预付账款的会计编码是多少?
  • 业务招待费列支范围对照表
  • 2023 最新最细 vite+vue3+ts 多页面项目架构,建议收藏备用!
  • 普莱斯德
  • 小规模纳税人的增值税账务处理
  • yolov5m
  • 平常心下一句该怎么说
  • 文心一言中国经济大讲堂
  • ssh非交互式登录
  • thinkphp6验证
  • 是否就地汇总纳税
  • 车辆转让后的责任谁承担
  • 本年利润有余额是什么意思
  • 医疗机构销售药品是否征收增值税
  • 子公司注销母公司投资损失企业所得税
  • 上市公司股票增发条件
  • 生产过程中报废怎么核算成本
  • 收到商业汇票怎么入账
  • 土地使用权属于无形资产吗
  • 股权支付会计处理
  • 小规模纳税人购买原材料会计分录
  • 收到保险公司的发票怎么做账
  • 应付票据贴现借款
  • 印花税征税范围2021
  • mysql分组后取最新的一条记录
  • 比较简单的字
  • win8的计算机在哪里
  • powershow是什么意思
  • win10正版和盗版区别大吗
  • win8如何进入bios
  • cocos开发游戏
  • javascript的基本规范
  • 批处理修改hosts 加一行
  • python数值计算基础
  • vue_api_server
  • jquery中的css方法
  • ubuntu修改默认桌面环境
  • python怎么处理json数据
  • 国家税务总局全国增值税发票官网
  • 陕西省国家税务局刘峰
  • 国税备案的作用是什么
  • 财税库银是什么税
  • 河北省原地税局领导班子
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设