最近写评论组件,需要在二个页面、一个自定义组件之间传递、调用方法,当新增、删除评论时要通知父页面更新评论数量,也就是如何做到子页面数据更新后通知父页面也更新数据!
经研究,在uni.navigateTo中已经提供了EventChannel来解决此类问题。在父页面的click_comment中写上更新评论数量的方法changeCommentsCount,之后此方法就传递到了comments.vue中了(相当于)。
EventChannel参考
https://uniapp.dcloud.io/api/router?id=navigateto
导航到comments.vue页面后,再来一个方法changeCommentsCount并传递到自定义组件ange-comments中去:
当ange-comments增加评论或者删除时都会调用comments.vue中的changeCommentsCount方法,以删除为例。
即上述代码中的
然后此方法再调用practice.vue中的changeCommentsCount,经过了两次调用!
实战
评论页面删除一个评论,可以看到右下角已经调用了practice页面中的click_comments中定义好的方法changeCommentsCount,并正确的获取了数据data: -1。
vuex也可以达到同样的效果,不过类似这种层次不多的,使用EventChannel就能简单的解决。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!