UNIAPP返回上一页并参数 uni.$on、uni.$off、uni.$once 和 uni.$emit
WPF Prism事件聚合器-订阅/发布事件 https://www.cnblogs.com/douyuanjun/p/17788957.html
结合JS理解更容易理解:https://www.cnblogs.com/douyuanjun/p/17465402.html
//传参给上一页
confirm:function(){
if(this.list.length >= 1){
//选择观演人
uni.$emit('selectViewersEvent',this.list[this.current]);
}
uni.navigateBack()
},
// 返回上一页时onShow会执行
onShow:function(){
//选择观演人
uni.$once('selectViewersEvent', (data) => {
console.log('selectViewersEvent',{data});
});
}
uni.$on(eventName, callback)
参数:eventName 是事件名称,callback 是事件回调函数。
功能:用于订阅一个事件,并在事件触发时执行回调函数。
场景:适用于需要监听事件并进行相应操作的场景,比如监听用户点击某个按钮的事件,或者监听网络请求返回的结果。
uni.$off(eventName, callback)
参数:eventName 是事件名称,callback 是之前订阅事件时使用的回调函数。
功能:用于取消订阅一个事件,即移除之前使用 uni.$on 订阅的事件回调函数。
场景:适用于取消之前的事件订阅,当不再需要监听某个事件时使用。
uni.$once(eventName, callback)
参数:eventName 是事件名称,callback 是事件回调函数。
功能:与 uni.$on 类似,用于订阅一个事件,但是只会触发一次,即回调函数执行后会自动取消订阅。
场景:适用于只需要监听一次事件的情况,比如在某个页面初始化时请求一次数据,然后不再需要监听该事件。
uni.$emit(eventName, args?)
参数:eventName 是事件名称,args 是可选的参数,用于传递给事件回调函数。
功能:用于触发一个事件,即执行之前使用 uni.$on 订阅的事件回调函数。
场景:适用于需要手动触发事件并传递参数的情况,比如在某个组件内部发生了某个重要事件,需要通知其他组件进行相应的操作。