今天开发项目过程中发现,打开多个tab详情页后,详情页之间互相切换,数据没有刷新。查看控制台,发现详情页tab之间互相切换时,onActivated钩子函数只运行了一次,后续也并没有发送相应的请求

但是我明明在onActivated钩子函数中调用了数据请求函数,每次激活页面的时候就重新请求数据。

此时,我发现,在其他页面和详情页互相切换时,onActivated钩子函数被成功调用了。

猜想:可能是keepAlive将详情页(同一个组件,路由带的query不同)都视作同一个组件了,所以在详情页之间切换,组件一直都是出于激活状态,只在第一次会调用onActivated钩子函数。

查看代码:

果然,默认的组件名作为区分。

解决办法:给组件绑定key值即可

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐