uniapp 页面交互

实际项目中,数据更新问题常常是令人非常头疼的,有时候常常因为更新不及时而导致数据丢失,页面闪烁等问题发生。uniapp官方提供了全局的自定义事件,优雅的解决了这方面的问题。

我们来勾勒一个场景,比如我们有列表和详情两个页面,这两个页面中都需要进行收藏操作,那么在详情页面收藏之后再返回列表页,列表页中的收藏状态和数量没有更新。如果将接口调用写在onShow生命周期函数中,会出现页面闪烁的问题,不符合我们强迫症的审美需求。

这个时候,我们在详情页进行收藏或取消收藏之后,可以使用uni.$emit开启一个自定义事件。

setCollectHandle() {
	// 请求接口返回成功后
	uni.$emit('updateContentData'); // 定义了一个自定义事件为updateContentData
	// 如果需要传递参数,则在uni.$emit的第二及往后的位置传递即可,中间用,分割
	uni.$emit('updateContentData', 1);
	// 多个参数时,建议将参数写为对象形式
	var params = { name: '张三', age: 18 };
	uni.$emit('updateContentData', params);
}

回到列表页,在onLoad生命周期中监听updateContentData方法,接收的方式共有两种uni.$on和uni.$once,两个方法都可以监听uni.$emit定义的自定义方法,不同的是uni.$once方法只会监听一次。

onLoad() {
	uni.$on('updateContentData', (par

猜你喜欢

转载自blog.csdn.net/weixin_46167462/article/details/130634107