vue2页面切换刷新回来后保留搜索条件数据

最近遇到这样一个需求当我们用户在列表中通过搜索条件查询出来的list然后点击进入详情页后返回list页面要求保留上次查询条件的数据,不重置数据,当时我就想当到了使用vuex来存储用户的查询条件数据,然后进行回显处理。

vuex

新建一个vuex配置,可以用来多个页面的查询条件存储,不仅仅局限存储一个页面的查询条件

src>store>modules>sotreQueryParams.js


/*
 * @用来存储各页面的查询参数,达到用户跳转详情页返回列表查询参数不变
 */
const state = {
  auditQuery: {}, //业务配置页面查询参数
  auditTypeQuery: {} //流程配置页面查询参数
}

const mutations = {
  AUDIT_QUERY: (state, data) => {
    state.auditQuery = data
  },
  AUDIT_TYPE_QUERY: (state, data) => {
    state.auditTypeQuery = data
  },
}

const actions = {
  addAudtQuery({ commit }, data) {
    commit('AUDIT_QUERY', data)
  },
  addAudtTypeQuery({ commit }, data) {
    commit('AUDIT_TYPE_QUERY', data)
  },
}

export default {
  namespaced: true,
  state,
  mutations,
  actions
}

业务页面代码

1.流程配置页面代码 在created中先判断vuex里面有没有该页面的查询条件数据,有则赋值查询,没有则为空

2.在getList查询列表逻辑中,每次查询的时候我去向vuex里面存储我最新的查询条件数据

 created() {
    //查询用户之前是否已保存查询参数,如果有则回显
    if (
      Object.keys(this.$store.state.sotreQueryParams.auditQuery).length === 0
    ) {
      this.queryParams = {
        pageNum: 1,
        pageSize: 10,
        auditType: undefined,
        baseTable: undefined,
        baseKey: undefined,
        baseName: undefined,
        baseService: undefined,
      };
    } else {
      this.queryParams = JSON.parse(
        JSON.stringify(this.$store.state.sotreQueryParams.auditQuery)
      );
    }
    this.getList();
  },
  methods:{
 /** 查询流程业务配置列表 */
    getList() {
      this.loading = true;
      //存储页面的查询参数,达到用户跳转详情页返回列表查询参数不变
      this.$store.dispatch("sotreQueryParams/addAudtQuery", this.queryParams);
      listAuditType(this.queryParams).then((response) => {
        this.auditTypeList = response.rows;
        this.total = response.total;
        this.loading = false;
      });
    },
  }
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Vue中,可以通过不同的方法来保留数据,以便在页面刷新时不丢失。其中一种方法是将数据保存到浏览器缓存中,可以使用sessionStorage或者localStorage来实现。引用\[1\]中提到了使用sessionStorage来保存数据的方法。在页面加载时,可以通过读取sessionStorage中的数据来还原vuex中的状态信息。在页面刷新时,可以通过监听beforeunload事件,在事件回调函数中将vuex中的信息保存到sessionStorage中,以便在刷新后可以重新加载。这样可以确保数据刷新页面时不丢失。 另外,还可以使用vuex-persistedstate插件来实现状态持久化。引用\[3\]中提到了使用该插件的方法。在页面刷新时,可以将vuex的state数据存储到sessionStorage中,以便在刷新后可以重新加载。这个插件可以简化数据的保存和加载过程,使得在刷新页面保留数据更加方便。 综上所述,可以通过将数据保存到浏览器缓存中或使用vuex-persistedstate插件来实现在刷新页面保留数据的功能。 #### 引用[.reference_title] - *1* [vuex存取数据 刷新页面数据不丢失问题](https://blog.csdn.net/m0_51073906/article/details/126727706)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [vuex在刷新页面保持数据不变(vuex状态持久化)](https://blog.csdn.net/weixin_45426836/article/details/106569186)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [vue如何在页面刷新保留状态信息](https://blog.csdn.net/weixin_38069018/article/details/110526227)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吃西瓜不吐籽_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值