怎么从订单列表页面到订单详情页面,再回订单列表页面,页码不变?
比如:从订单列表页面第4页点击一个订单详情,再回到订单列表页面,页码还是第4页?
动态缓存路由,通过动态改变keepAlives来实现,存储的值是name
,页面和路由的name
<!-- app.vue -->
<template>
<keep-alive :include="keepAlives">
<router-view></router-view>
</keep-alive>
</template>
<script>
import { mapGetters } from 'vuex'
export default {
name: 'index',
data () {
return {
}
},
computed: {
...mapGetters(['keepAlives'])
}
}
</script>
页面通过beforeRouteEnter
beforeRouteLeave
,在列表页进入详情页时,缓存列表页,进入其它页面则不缓存
// 列表页
beforeRouteEnter (to, from, next) {
next(vm => {
vm.$store.commit('SET_KEEP_ALIVE', ['Financial'])
})
},
beforeRouteLeave (to, from, next) {
if (to.name === 'DemoDetail') {
this.$store.commit('SET_KEEP_ALIVE', ['Financial'])
} else {
this.$store.commit('SET_KEEP_ALIVE', [])
}
next()
}
// store
export default {
state: {
keepAlives: []
},
mutations: {
SET_KEEP_ALIVE (state, keepAlives) {
state.keepAlives = keepAlives
}
},
actions: {
setKeepAlive ({ commit }, keepAlives) {
commit('SET_KEEP_ALIVE', keepAlives)
}
},
getters: {
keepAlives (state) {
return state.keepAlives
}
}
}
大概就是以上思路
1.看需要是否要求,保留你上一步得操作
2.不保留,返回列表页,重置页面和数据,那么你可以在activated或者beforeRouteLeave中,把你得页面重置
从订单列表页面到订单详情,在快捷导航的订单列表路径添加?pageNum=4,在订单列表.vue中created()设置this.pageNum = this.$route.query.pageNum
1、使用keep-alive,使用方法可以参考下面链接
https://blog.csdn.net/qq_41983641/article/details/113368703
2、可以做缓存,在列表页点击详情的时候,将当前页存到本地(或者从url带过去),返回的时候从本地获取页码(url带回去),注意如果是从本地获取,如果获取不到,就默认为第一页,url带参也一样判断