1. 问题
做用户中心的时候,用户中心左侧显示用户头像和导航栏,点击导航栏会切换子路由;
我在父路由组件created调用获取用户头像接口,发现每次切换子路由都会调用该接口,也就是每次切换子路由,父路由都会重新渲染
2. 原因
home中:
<router-view :key="`${$route.path}${$route.query.keywords}`"></router-view>
也就是渲染父路由的容器。因为设置了key,所以改变路由时,只要key发生变化,对应路由就会重新渲染。
这里每次切换子路由,$route.path发生改变,引起key值改变,所以导致父路由重新渲染。
3. 解决办法
将key去掉,但是我这边是有些页面是要根据$route.query.keywords改变重新渲染的,所以我改成了
<router-view :key="`${$route.query.keywords}`"></router-view>