当前位置: 首页 > news >正文

uni-app实现页面通信EventChannel

uni-app实现页面通信EventChannel

之前使用了EventBus的方法实现不同页面组件之间的一个通信,在uni-app中,我们也可以使用uni-app API —— uni.navigateTo来实现页面间的通信。注:2.8.9+ 支持页面间事件通信通道。

1. 向被打开页面传送数据

// index.vue
<script setup>uni.navigateTo({url: '/pages/tender/detail', // 跳转详情页面success:function(res){// 通过eventChannel向被打开页面传送数据res.eventChannel.emit('toDetailEmits', { data: 'index to detail' })}});
</script>
// detail.vue
import { onLoad } from '@dcloudio/uni-app';
import { ref, getCurrentInstance} from 'vue';
const instance = getCurrentInstance().proxy<script setup>onLoad(()=>{const eventChannel = instance.getOpenerEventChannel();eventChannel.on('toDetailEmits',(data)=>{console.log(data,'data') // 输出结果如下})})
</script>

在这里插入图片描述

2. 如果需要获取被打开页面传送到当前页面的数据

// index.vue
<script setup>uni.navigateTo({url: '/pages/tender/detail', // 跳转详情页面events:{// 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据updataEmits:function(data){console.log(data,'data index')  // 输出结果如下// 可以在当前页做一些操作....}},success:function(res){// 通过eventChannel向被打开页面传送数据res.eventChannel.emit('toDetailEmits', { data: 'index to detail' })}});
</script>
// detail.vue
import { onLoad } from '@dcloudio/uni-app';
import { ref, getCurrentInstance} from 'vue';
const instance = getCurrentInstance().proxy<script setup>// 如点击某一按钮const cancle = () => {const eventChannel = instance.getOpenerEventChannel();eventChannel.emit('updataEmits',{data:'detail to index'})uni.navigateBack()}onLoad(()=>{const eventChannel = instance.getOpenerEventChannel();eventChannel.on('toDetailEmits',(data)=>{console.log(data,'data') })})
</script>

在这里插入图片描述

http://www.lryc.cn/news/358984.html

相关文章:

  • 等保系列之——网络安全等级保护测评工作流程及工作内容
  • 自然语言处理中的BERT模型深度剖析
  • 数据结构:希尔排序
  • unicloud 云对象
  • 【车载开发系列】常用专业术语汇总
  • 如何实现Docker容器的自动化升级:不再为手动更新烦恼!
  • SwiftUI 5.0(iOS 17)进一步定制 TipKit 外观让撸码如虎添翼
  • 使用C#实现VS窗体应用——画图板
  • flutter 自定义本地化-GlobalMaterialLocalizations(重写本地化日期转换)
  • HTTPS 原理技术
  • Linux基础指令及其作用之压缩与解压
  • ORA-08189: 因为未启用行移动功能, 不能闪回表问题
  • html+CSS部分基础运用9
  • 五大元素之一,累不累——Java内部类
  • YAML快速编写示例
  • 2024 江苏省大学生程序设计大赛 2024 Jiangsu Collegiate Programming Contest(FGKI)
  • 【C语言】基于C语言实现的贪吃蛇游戏
  • 代码审计(工具Fortify 、Seay审计系统安装及漏洞验证)
  • cocos creator 3.x 手搓背包拖拽装备
  • 运维开发.Kubernetes探针与应用
  • Spring 框架:Java 企业级开发的基石
  • 在Docker中使用GPU
  • vue3 前端实现导出下载pdf文件
  • AI智能体研发之路-模型篇(五):pytorch vs tensorflow框架DNN网络结构源码级对比
  • 电商物流查询解决方案助力提升消费者体验
  • 【深度密码】神经网络算法在机器学习中的前沿探索
  • 搭载算能 BM1684 芯片,面向AI推理计算加速卡
  • Python开发 我的世界 Painting-the-World: Minecraft 像素图片生成器
  • 【经验分享】盘点“食用“的写文素材
  • 实习碰到的问题w1