vue3+pinia打开页面闪过前一个点击过的页面

文章描述了一个开发者在项目中遇到的bug,即点击简历后部分页面只渲染出部分数据。问题在于父组件的异步数据传递给子组件时,由于生命周期钩子的同步性,导致数据未及时加载。解决方案是利用`v-if`在数据请求完成后渲染页面。
摘要由CSDN通过智能技术生成

最近做项目一直卡在一个bug上,找的天荒地老,走投无路,怀疑人生:

在点击简历进去之后,会有个别的页面只渲染了一部分数据,然后后退之后再点击进去就获取到数据了,而且那些能渲染出数据的简历,在控制台打印数据,发现是组件获得的数据是空的,

当你后退回去,点击别的页面会闪过上一个页面!此时第二次点击打印的数据是上一个我们点击过的页面的数据。

 

解决方法:后来一直查资料,发现因为我数据是通过父组件传给子组件的,

生命周期钩子是同步执行的,而向后端获取数据是异步的,如果在父组件的created中向后端异步获取数据,根据事件循环的顺序,子组件开始创建时是获取不到数据的。由于渲染和请求是异步的,我们可以等到数据请求回来之后,使用 v-if再把页面放出来

 看图:

 

 希望能帮助遇到类似问题的人!!

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值