vue.js - 如何判断路由时否是回退来的
本文介绍了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屋!
查看全文