也就是说从其他页面进到列表页,需要刷新获取数据,从详情页返回到列表页时不要刷新。解决方案在 app.vue 设置:假设列表页为 list.vue ,详情页为 detail.vue ,这两个都是子组件。我们在 keep-alive 添加列表页的名字,缓存列表页。然后在列表页的 created 函数里添加ajax请求,这样只有第一次进入到列表页的时候才会请求数据,当从列表页跳到详情页,再从详情页回来的时候,列表页就不会刷新。这样就可以解决问题了。我们可以在路由配置文件上对 detail.vue 增加一个 meta 属性。设置完这个属性,还要在 App.vue 文件里设置 watch 一下 $route 属性。这样就不需要在列表页的 created 函数里用 ajax 来请求数据了,统一放在 App.vue 里来处理。触发请求数据有两个条件:

Vue 实现前进刷新后退不刷新的效果

Vue 实现前进刷新后退不刷新的效果