uniapp使用EventBus实现页面间数据传递
前情
最近在做小程序项目,选用是当前比较火的uniapp技术栈,经常会遇到页面间消息传递的需求。
为什么要这么做?
uniapp页面间数据通信方式有很多:通过url传参,状态管理库vuex/pinia,本地存储,事件通道eventChannel,EventBus等,
这次的需求是在A面点击一个按钮跳转到B页面拾取一个数据选项再返回A页面用B页面拾取的数据做接下来逻辑处理,像这种情况用事件通道和EventBus来做是比较好的,EventBus相对使用更简单一些,所以使用EventBus
实现代码
A页面
<template>
<view>
<text>我是A页面</text>
<button @click="gotoPageB">点我去B页面</button>
</view>
</template>
<script>
export default {
mounted() {
this.handleCustomEventBind = this.handleCustomEvent.bind(this);
uni.$on('customEvent', this.handleCustomEventBind);
},
destory() {
uni.$off('customEvent', this.handleCustomEventBind);
},
methods: {
gotoPageB() {
uni.redirectTo({
url: '/pages/pageB/pageB'
});
},
handleCustomEvent(event) {
console.log(event.data); // 输出: Hello from Component B
// 处理事件的业务逻辑
// ...
}
}
};
</script>
B页面
<template>
<view>
<text>我是B页面</text>
<button @tap="triggerEvent">点我</button>
</view>
</template>
<script>
export default {
methods: {
triggerEvent() {
uni.$emit('customEvent', { data: 'Hello from Component B' });
uni.navigateBack();
}
}
};
</script>
注意
因为这种事件监听是全局的,所以在定义事件名的最好是是保证唯一,除非确实有多个地方要用到,而且最好是在页面销毁的时候记得清除不需要的事件监听。
uniapp使用EventBus实现页面间数据传递的更多相关文章
- 详细介绍ASP.NET页面间数据传递的使用方法
源码:http://www.jinhusns.com/Products/Download/?type=xcj 在ASP.NET中,页面间数据传递的方法有很多.下面为大家总结一下,页面间数据传递的方法. ...
- ASP.NET页面间数据传递的方法<转>
ASP.NET页面间数据传递的方法 作者: 灰色的天空2 来源: 博客园 发布时间: 2010-10-28 11:06 阅读: 822 次 推荐: 0 原文链接 [收藏] 摘要:本 ...
- ASP.NET中实现页面间数据传递的方法
说到页面间数据传递,很多人都会想到通过像Session这样的全局变量,但是向Session中添加的东西太多会增加服务器的压力,页面间数据传递,数据的作用范围越小越好. ASP.NET页面间数据传递 ...
- ASP.NET 页面间数据传递的方法
在做WEB开发时,很多地方会涉及到页面间的数据传递.这几天在完善教务基础系统,遇到了这个问题,上网查了一些资料,现总结如下: 说到页面间数据传递,很多人都会想到通过像Session这样的全局变量,但是 ...
- ASP.NET多种不同页面间数据传递的方法
1. Get(即使用QueryString显式传递) 方式:在url后面跟参数. 特点:简单.方便. 缺点:字符串长度最长为255个字符:数据泄漏在url中. 适用数据 ...
- wp8.1 Study1: 页面导航&页面间值传递
摘要:wp8.1与wp8中很多API是不一样了,wp8.1把以前wp7.x时的api去掉了,更多与win8.1的API相似.比如以下的页面导航和页面之间的值传递 1.页面导航 利用Frame.Navi ...
- php从入门到放弃系列-04.php页面间值传递和保持
php从入门到放弃系列-04.php页面间值传递和保持 一.目录结构 二.两次页面间传递值 在两次页面之间传递少量数据,可以使用get提交,也可以使用post提交,二者的区别恕不赘述. 1.get提交 ...
- vue 组件间数据传递
父组件向子组件传值 方法一: 子组件想要使用父组件的数据,需要通过子组件的 props 选项来获得父组件传过来的数据. 1.父组件parent.vue中代码: <template> < ...
- .NET在IE9中页面间URL传递中文变成乱码的解决办法
在.Net的项目中,鼠标点击查询按钮,转到查询页面,但URL中包含中文时,传到服务器端后,中文变成了乱码(只有IE9出现该问题). 尝试使用Server.UrlEncode()进行编码, ...
- Servlet页面间对象传递的方法
Servlet页面间对象传递的方法 1.request 2.session 3.application 4.cookie 5.其它的
随机推荐
- QT数据可视化框架编程实战之三维柱状图_补天云QT技术培训专家
QT数据可视化框架编程实战之三维柱状图_补天云QT技术培训专家 文章目录 QT数据可视化框架编程实战:三维柱状图可视化运行效果 主程序实现C++代码 主场景 QML代码 坐标轴QML代码 数据模型定义 ...
- OOOPS:零样本实现360度开放全景分割,已开源 | ECCV'24
全景图像捕捉360°的视场(FoV),包含了对场景理解至关重要的全向空间信息.然而,获取足够的训练用密集标注全景图不仅成本高昂,而且在封闭词汇设置下训练模型时也受到应用限制.为了解决这个问题,论文定义 ...
- 2023年3月中国数据库排行榜:开源OTO揽获前三,传统达梦、GBase触机便发
东风何时至,已绿湖上山. 春风送来了2023年3月的 墨天轮中国数据库流行度排行,本月共有260个数据库参与排名,本月榜单前十可以用一句话概括为:榜单前八较上月岿然不动,GBase 奋勇向前重返第九. ...
- kotlin类与对象——>委托、委托属性
1.委托 1.1 委托的实现 委托模式已经证明是实现继承的一个很好的替代方式,而 Kotlin 可以零样板代码地原生支持它. Derived 类可以通过将其所有公有成员都委托给指定对象来实现一个接口 ...
- AvaloniaTCP-v1.0.0:学习使用Avalonia/C#进行TCP通讯的一个简单Demo
TCP通讯简介 TCP(传输控制协议,Transmission Control Protocol)是一种面向连接的.可靠的.基于字节流的传输层通信协议.它确保数据包按顺序传输,并在必要时进行重传,以保 ...
- Acrobat DC安装报错1603,Microsoft Visual C++2013(x64)失败
之前顺利安装过Acrobat DC,但可能因为自动更新了,导致让我重新登录才能使用,无法再次破解.于是我卸载后重新安装,发现提示Microsoft Visual C++2013(x64)运行安装失败. ...
- MIL-STD-1553B总线通信模块(1553B板卡)
MIL-STD-1553B总线通信模块(1553B板卡)产品具有以下特点: 1.产品覆盖多种接口CPCI/PXI/PCI/PC104/PC104+/USB等,满足用户不同平台的使用要求: 2.自主知识 ...
- Nuxt.js 应用中的 modules:done 事件钩子详解
title: Nuxt.js 应用中的 modules:done 事件钩子详解 date: 2024/10/16 updated: 2024/10/16 author: cmdragon excerp ...
- RocketMQ 5.0 如何配置TLS加密传输?
本文作者:李伟,社区里大家叫小伟,Apache RocketMQ Committer,RocketMQ Python客户端项目Owner ,Apache Doris Contributor,腾讯云Ro ...
- 《使用Gin框架构建分布式应用》阅读笔记:p127-p142
<用Gin框架构建分布式应用>学习第9天,p127-p142总结,总计16页. 一.技术总结 1.Authentication方式汇总 (1)API keys API keys 认证方式示 ...