最近做项目一直卡在一个bug上,找的天荒地老,走投无路,怀疑人生:
在点击简历进去之后,会有个别的页面只渲染了一部分数据,然后后退之后再点击进去就获取到数据了,而且那些能渲染出数据的简历,在控制台打印数据,发现是组件获得的数据是空的,
当你后退回去,点击别的页面会闪过上一个页面!此时第二次点击打印的数据是上一个我们点击过的页面的数据。
解决方法:后来一直查资料,发现因为我数据是通过父组件传给子组件的,
生命周期钩子是同步执行的,而向后端获取数据是异步的,如果在父组件的created中向后端异步获取数据,根据事件循环的顺序,子组件开始创建时是获取不到数据的。由于渲染和请求是异步的,我们可以等到数据请求回来之后,使用 v-if再把页面放出来
看图:
希望能帮助遇到类似问题的人!!