微信小程序之页面之间传值,主动接收!EventBus

查了些资料,看了下小程序页面的传值!
主要的是主动式和效率问题,以下是基于页面和事件维度的事件订阅和发布!

App({onLaunch() {},// 事件订阅 app.on('sharenum',this.route,this.func.bind(this))on(action,path, event) {if (eventMap) {if(eventMap.has(action)){var events = eventMap.get(action);events.set(path,event);}else{var events = new Map();events.set(path,event);eventMap.set(action, events)}}// app.on('event_name',this.route,this.functionname.bind(this));//functionname(msg){//这里处理接收到的msg信息};},// 事件卸载 app.off('sharenum' this.route);off(action,path) {if (eventMap) {if(eventMap.has(action)){var events = eventMap.get(action);events.delete(path);}}},// 事件触发 arg需要为字符串,在对应的地方自己拆装箱emit(action, arg) {if (eventMap && eventMap.has(action)) {var events = eventMap.get(action);var funcs = events.values();for(var func of funcs){func(arg);}// eventMap.get(action) && eventMap.get(action)(arg)}//app.emit('eventname',msg);},// https://blog.csdn.net/gaowenju1991/article/details/132321342globalData: {userInfo: null,}
})

App({
onLaunch() {
},
// 事件订阅 app.on(‘sharenum’,this.route,this.func.bind(this))
on(action,path, event) {
if (eventMap) {
if(eventMap.has(action)){
var events = eventMap.get(action);
events.set(path,event);
}else{
var events = new Map();
events.set(path,event);
eventMap.set(action, events)
}
}
// app.on(‘event_name’,this.route,this.functionname.bind(this));
//functionname(msg){//这里处理接收到的msg信息};
},
// 事件卸载 app.off(‘sharenum’ this.route);
off(action,path) {
if (eventMap) {
if(eventMap.has(action)){
var events = eventMap.get(action);
events.delete(path);
}
}
},
// 事件触发 arg需要为字符串,在对应的地方自己拆装箱
emit(action, arg) {
if (eventMap && eventMap.has(action)) {
var events = eventMap.get(action);
var funcs = events.values();
for(var func of funcs){
func(arg);
}
// eventMap.get(action) && eventMap.get(action)(arg)
}
//app.emit(‘eventname’,msg);
},
// https://blog.csdn.net/gaowenju1991/article/details/132321342
globalData: {
userInfo: null,
}
})
看上面的代码,主要是一个事件可能给多个页面使用,所以关键点在于关联的对象(function)应该是一个数组或者map啥的,而不是网络资料上的单个!
如果页面是被终结的,我估计上面也有问题,估计的try catch下!
后续使用中发现问题,再修改!

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

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

相关文章

webGL可用的14种3D文件格式,但要具体问题具体分析。

hello,我威斯数据,你在网上看到的各种炫酷的3d交互效果,背后都必须有三维文件支撑,就好比你网页的时候,得有设计稿源文件一样。WebGL是一种基于OpenGL ES 2.0标准的3D图形库,可以在网页上实现硬件加速的3D图…

关于ppmlhdfe和possion两个命令回归显示观测值不同

随着QJE文章“log with zero“的爆红,ln(1x)被判了死刑。。。 Chen, Jiafeng, and Jonathan Roth. "Logs with zeros? Some problems and solutions." The Quarterly Journal of Economics 139.2 (2024): 891-936. 对于包含0的数据,但是又希望…

认识并掌握控制面板的基础知识

哈喽,大家好呀,淼淼又来和大家见面啦,在数字时代,无论是使用个人电脑、智能家居还是专业设备,控制面板都是一个至关重要的界面,它让你能够调整设置、管理功能和优化设备性能。作为一位新手小白,…

实时操作系统(UCOS-III )实用教程

UCOS-III实时操作系统系列文章告一段落,后续会跟大家一起深入学习探讨以下两方面的内容: . 深入分析UCOS-III 实现原理 . 基于UCOS-III的项目实践 目录 系统移植系统配置系统运行数据统计使用图形化工具监控系统性能任务间通信-消息队列任务间同步机制-…

985研究生8年终毕业,学位证颁发11天后被作废?

“正常是学校颁证给学院,但学院就没告诉我,还把学校颁发的证书给撤销了,这中间学院并没有书面或电话告知我本人。”34岁读研,如今已42岁的内蒙古任女士回想起求学不易,很是心酸。 2015年3月,任女士考取2015…

【ffmpeg系列二点五】(失败,建议放弃)ubuntu下进行源码构建,给ffmpeg7.0.1添加hevc支持。

背景 windows下构建失败,ffmpeg对于flv-h265的处理得到新的报错。 开始ubuntu22下编译 pre:清除我们之前编译的nightly版本 sudo rm -rf /usr/local/bin/ffmpeg sudo rm -rf /usr/local/bin/ffprobe sudo rm -rf /usr/local/bin/ffserver sudo rm -…

Activity,window和DecorView之间的关系是什么?

Activity、Window和DecorView在Android开发中扮演着重要的角色,它们之间有着紧密的关系。以下是它们之间关系的详细解析: 一、Activity 定义:Activity是一个应用程序组件,它在屏幕上提供一个区域,可用于显示和交互。…

3D线上展示技术如何应用到汽车营销中?有哪些优势?

传统的汽车销售主要是通过实体店面展示汽车,但这样的展示方式成本高昂,而且还有空间限制。近年来,随着互联网的不断发展,线上看车逐渐成为当下年轻消费群体的看车新选择,并且线上看车正在从2D平面转向3D立体体验。 一、…

Phospho:LLM应用的文本分析利器

今天向大家介绍phospho文本分析平台,专门为大型语言模型(LLM)应用程序设计。它可以帮助开发者从用户或应用程序的文本消息中检测问题、提取洞见、收集用户反馈,并衡量成功。作为一个开源项目,phospho允许开发者查看和修…

零基础STM32单片机编程入门(十二) HC-SR04超声波模块测距实战含源码

文章目录 一.概要二.HC-SR04主要参数1.模块引脚定义2.模块电气参数3.模块通讯时序4.模块原理图 三.STM32单片机超声波模块测距实验四.CubeMX工程源代码下载五.小结 一.概要 HC-SR04超声波模块常用于机器人避障、物体测距、液位检测、公共安防、停车场检测等场所。HC-SR04超声波…

统信UOS安装VMware tools

1.在vmware软件中打开虚拟机进入系统 2.点击vmware虚拟机(M) 3.点击是 4.点击安装VMware Tools(T) 5.回到UOS系统,点击桌面计算机 6.打开DVD-RAM 驱动器 7.将VMwareTools-10.1.6-5214329.tar.gz这个压缩文件解压到桌面…

泛型

背景 优点 类型绝对安全避免强制类型转换 泛型类 定义 使用 举例 泛型类 // 泛型类 T就是类型参数 public class Generic<T>{// key这个成员变量的类型为T,T的类型由外部指定private T t;public void set(T t){this.t t;}public T get(){return t;} }使用 // 创建一个泛…

k8s 部署RuoYi-Vue-Plus之server部署

1.先使用项目编排构建镜像, 修改prod使用的mysql, redis地址 获取运行的服务 kubectl get svc -n ruoyi对应连接修改 然后运行打包package命令, 生成jar包, 再打包为docker容器, 上传到所有节点上, 也可以上传到个人私有仓库 2.部署server-deploy.yaml 镜像名自行修改, apiV…

make -f ./scripts/Makefile.build obj=dir 分析

文章目录 1. make -f ./scripts/Makefile.build objscripts1.1 执行 $(subdir-ym) 1. make -f ./scripts/Makefile.build objscripts 由《1. make -f ./scripts/Makefile.build objXXX》 分析可知&#xff1a;  1. 在《1.1 引用文件》中引用./scripts/Makefile、scripts/Makef…

el-input-number @input.native触发,修改值失效

试过在方法里用this.$set()、this.$next(()>{})没生效 解决方案&#xff1a;如下

B3917 [语言月赛 202401] 小跳蛙

OK 挠~ stop here~ 好啊&#xff0c;现在呢&#xff0c;把手头的事情先放一放啊&#xff0c;我们来做道练习 OK&#xff1f; 好啊来&#xff1a; 小跳蛙 题目描述 有 &#x1d45b;−1 只小跳蛙在池塘中&#xff0c;依次被编号为 1,2,⋯ ,&#x1d45b;−1。池塘里有 &am…

运行TensorRT命令出现 No such file or directory: ‘trtexec‘ 的参考解决方法

文章目录 写在前面一、问题描述二、解决方法参考链接 写在前面 自己的测试环境&#xff1a; Ubuntu20.04 一、问题描述 运行trtexec的命令时&#xff0c;出现如下报错&#xff1a; FileNotFoundError: [Errno 2] No such file or directory: trtexec二、解决方法 首先需要…

DDL也会有undo吗?模拟Oracle中DML、DDL与undo的关系,10046跟踪DDL语句

已经有两个月没有更新博客了&#xff0c;主要实在忙毕设和毕业的一些事情&#xff01;这两个月也是非常的精彩呀&#xff0c;充分体会到了职场的和校园的不同&#xff0c;作为一名刚毕业就满 1 年工作经验的牛马人&#xff0c;在两个月期间经历了两次调岗、两次降薪&#xff0c…

MyBatis在insert时返回自增长id值的方法

一、引言 在业务开发的时候&#xff0c;由于MyBatis框架的insert语句默认是不返回记录的主键值&#xff0c;而是返回插入的记录条数的&#xff0c;但是如果业务层需要得到插入数据的主键时候&#xff0c;可以通过配置的方式来实现获取插入数据的ID功能。 <!--useGeneratedK…

VScode 格式化插件Prettier设置无效

VScode在配置格式化代码的插件的时候&#xff0c;可以选择Prettier或者ESlint等插件 比如选择Prettier格式化代码 在某文件修改代码之后&#xff0c;ctrls 保存代码&#xff0c;保存之后会自动格式化代码&#xff0c;但是我们发现控制台有报错 为什么已经设置了格式化插件为Pr…