切换子路由时,父路由的组件会重新渲染

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>
posted @ 2020-04-10 09:49  ฅ˙-˙ฅ  阅读(2329)  评论(0编辑  收藏  举报