UNIAPP返回上一页并参数 uni.$on、uni.$off、uni.$once 和 uni.$emit

发布时间 2023-11-21 14:53:41作者: 窦戈

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.$on('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 订阅的事件回调函数。
场景:适用于需要手动触发事件并传递参数的情况,比如在某个组件内部发生了某个重要事件,需要通知其他组件进行相应的操作。