vue.js - 如何判断路由时否是回退来的

查看:1411
本文介绍了vue.js - 如何判断路由时否是回退来的的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

我在列表项中的create()生命周期中执行加载数据的初始化操作
在进入列表项,点击了一个项之后,进入具体的内容页面
当点击返回的时候,列表项又重新执行了create()
我想知道有没有方法可以判断路由是否是经过回退操作进行的
让我在回退的时候,不重新加载数据

解决方案

对于这个问题,自己想到一种解方案,如下:
1.所有的数据都是缓存在vuex中,包括列表数据与页码数据
2.关于如何判断回退,我目前中的项目,路由 list 比如是/list ,路由 content/list/content。即路由是嵌套关系
3.将原本列表页面中在create()中执行初始化的动作移动到

route: {
      data (transition) {
        const from = transition.from || {path: ''}
        const fromPath = from.path || ''
//        console.log(fromPath)
        const to = transition.to || {path: ''}
        const toPath = to.path || ''
//        console.log(toPath)
        // 判断是否回退
        if(fromPath.indexOf(toPath) >= 0) {
          //不初始化数据,使用原来数据,并设置页码
//          console.log('不初始化数据,使用原来数据,并设置页码')
//          console.log(this.appInfo)
        } else {
//          console.log('初始化数据与页码')
          this.setAppInfoPage({payload: {page:0}})
//          console.log(this.appInfo)
          this._init()
        }
      }

这篇关于vue.js - 如何判断路由时否是回退来的的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆