Vue-router2.0 跳转后保存当前页面的data,供返回时使用

刚进入页面的时候

clipboard.png

通过fetchData这个方法调用了接口获取到了数据,然后这个页面跳转到另外一个路由后,点击返回按钮,又重新执行了一次这个方法,有什么方法可以点击返回的时候不要再次加载这个路由,就返回到进入前的状态?或者说可以把当前路由的Data保存的全局,返回的时候判断一下,如果有内容就不再次请求数据,并且返回到进入前的位置?

clipboard.png

阅读 22.7k
6 个回答

使用keep-alive ,然后通过路由生命周期刷新数据,比如

beforeRouteEnter(to, from, next){
      next(vm=>{
        console.log(vm.test)
        //ajax获取数据
        vm.test='xxx'
      })
  }
新手上路,请多包涵

你这个问题解决了吗 我遇到了相同的问题 求指教

有roter-link的话,每个组件是有这么两个周期函数的,一个是deactived,一个是actived.

每次离开会有一个记录调用的是deactived,从其他页面重新回到这个页面就会调用actived。

我用到的时候是 保存之前页面滚动所在的位置,应该方法大同小异,没实践过。
image.png~~~~

还有一个就是你需要将请求到的数据在data中做保存,你这种写法,调用完了,就会销毁。
image.png

个人的一些理解,如果有什么不对的地方,可以共同探讨。

使用keep-alive

<router-view keep-alive></router-view>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏