订单列表页面到订单详情页面,再回订单列表页面,页码不变

怎么从订单列表页面到订单详情页面,再回订单列表页面,页码不变?
比如:从订单列表页面第4页点击一个订单详情,再回到订单列表页面,页码还是第4页?

img

img

动态缓存路由,通过动态改变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带参也一样判断