今天开发项目过程中发现,打开多个tab详情页后,详情页之间互相切换,数据没有刷新。查看控制台,发现详情页tab之间互相切换时,onActivated钩子函数只运行了一次,后续也并没有发送相应的请求
但是我明明在onActivated钩子函数中调用了数据请求函数,每次激活页面的时候就重新请求数据。
此时,我发现,在其他页面和详情页互相切换时,onActivated钩子函数被成功调用了。
猜想:可能是keepAlive将详情页(同一个组件,路由带的query不同)都视作同一个组件了,所以在详情页之间切换,组件一直都是出于激活状态,只在第一次会调用onActivated钩子函数。
查看代码:
果然,默认的组件名作为区分。
解决办法:给组件绑定key值即可