页面调用组件,组件刷新问题——监听

背景分析:1、登录注册封装为公共组件,当调用登录接口后需要重新刷新当前页面。若单纯的页面则没有任何问题,直接执行reload即可。
        2、若组件封装成公共组件,并且数据也在组件中各自获取渲染。当页面调用组件时无法执行 onShow() 、reload() 生命周期(若在当前页面获取数据则不存在该问题,需要刷新页面数据时重新调用一次数据接口即可)。
     3、因为组件的生命周期是没有onShow这个生命周期的,只有created、mounted等不满足需求,只能从页面的生命周期考虑,传参亦是如此:onLoad获取页面参数,得到后再传递给组件,组件再进行相应操作;

     4、解决方案:监听:在页面里监听子组件何时需要重新调用接口数据,子组件得到消息后再调用接口即可。

实现方式:

1、页面调用:

onShow() {
        this.getUserInfo();
        this.Vue.isRefesh+=1;  //这里使用this.Vue是因为js代码提到了页面对应的js文件,而不是像往常的 <template></template>  <script></script> 格式。 正常情况下直接写成 this.isRefresh+=1;即可。
}

 

 

 

2、AddressList 组件

 

总结:跨组件和跨页面的刷新数据比较特殊,监听是个不错的选择。不能单纯使用重载当前页面的方法(如下图),因为组件是单独的,且没有onLoad()、onShow、onReady这些个生命周期。若是同行还有其他更好的解决办法烦请留言告知下额,相互学习!

 

posted on 2022-12-06 17:01  小虾米吖~  阅读(379)  评论(0编辑  收藏  举报