Vue.js 如何使用方法推送保持上一页的活动状态?

Vue.js 如何使用方法推送保持上一页的活动状态?,vue.js,vue-router,Vue.js,Vue Router,如何保持上一页的活力 我有一个列表页,在这个页面中有一个分页器。 我使用this.$router.push推送到详细信息页面: go_details(h, params){ let query = { id: params.row.id } this.$router.push({ name: 'physicalserverDetails', query: query }); }, 在physicalserverDeta

如何保持上一页的活力

我有一个列表页,在这个页面中有一个分页器。 我使用
this.$router.push
推送到详细信息页面:

  go_details(h, params){
    let query = {
      id: params.row.id
    }
    this.$router.push({
      name: 'physicalserverDetails',
      query: query
    });
  },
physicalserverDetails
中,我使用
this.$router.go(-1)返回

但是,有一个问题,如果列表中有第5页,我从physicalserverDetails返回,列表页面将刷新第1页,而不是第5页

我知道通常我可以使用
保持活动状态
标记来实现目标

<keep-alive include="index">
  <router-view></router-view>
</keep-alive>

但是必须使用
this.$router.push(xxx)
才能使用它,因为详细信息页面是一个普通页面,有许多条目


如何使用它?

一种方法是将页码作为查询参数存储在URL中。这样,页码将在路由器历史记录中被“记住”,因为它存在于URL中

可以将查询参数绑定到组件中的道具(请参见)。当下一页的值更改时,您可以使用它或使用钩子加载下一页

如果有“上一页”/“下一页”按钮,则只需将它们设置为一个将
页面
查询参数设置为相应页面的按钮


这不会将上一页保留在内存中(就像
那样),但是您知道应该显示什么页码来响应路线更改,因为您可以只检查
页面
查询参数。它还修复了Stephan-v在评论中指出的问题,即刷新页面将保留页码。

不过,您的分页设置如何?您的路由器无法神奇地知道您的分页。如果您刷新页面,并且使用查询参数或其他方法无法获取分页状态,那么很明显您将从第1页开始。