问题:一级分类的切换正好满足上面的条件,组件实例复用,导致分类数据无法更新
解决问题的思路:
1.让组件实例不复用,强制销毁重建
2.监听路由变化,变化之后执行数据更新操作
方案一:给router-view添加key
以当前路由完整路径为key的值,给router-view组件绑定
方案二:使用beforeRouteUpdate导航钩子
beforeRouteUpdate钩子函数可以在每次路由更新之前执行,在回调中执行需要数据更新的业务逻辑即可
总结
1.路由缓存问题产生的原因是什么?
路由只有参数变化时,会复用组件实例
2.俩种方案都可以解决路由缓存问题,如何选择呢?
在意性能问题,选择onBeforeUpdate,精细化控制
不在意性能问题,选择key,简单粗暴