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


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>


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM