vue2+若依+页面切换刷新回来后保留数据

本文介绍了如何在Vue2和若依框架中利用Vuex保存页面切换时的搜索条件,避免刷新后数据丢失。通过创建Vuex模块、暴露store以及在组件生命周期中操作数据,成功实现页面间数据持久化。同时,文章提到在清空功能中也需要考虑保存状态,并指出JSON.stringify()方法在判断对象为空时可能存在的问题。

如题 现有两个页面,接单页面和订单详情页面。接单页面有一个查询弹窗。

1、默认将客服设置成当前登录的人员,并只展示出该客服负责的订单

2、重新设置了搜索条件,进入订单详情页面再回来,页面会刷新,搜索条件也会被重置,希望不要重置搜索条件而是进行保留

 

 

 讲道理,昨天第一个需求提出来的时候我可以把它给实现了,第二个需求提出来的时候我愣是傻了,单以为只要切换页面就必定会刷新页面,搜索条件必重置,做不了

今天上午来,又看了一遍需求,突然想到为什么我第一个需求可以用vuex写出来,第二个为啥不能

于是看了一下若依框架里的vuex代码,把功能实现出来了,和原生的vue用法基本一致。

一、写vuex

src->store->modules里新建一个search.js(因为有两个页面需要完成这个功能,所以写了两个state)

const search = {
  state:{
    orderSearch: {},
    invoiceSearch: {}
  },
  mutations:{
    SET_ORDER:(state, val) =>{
      state.orderSearch = val
    },
    SET_INOVICE:(state, val)=>{
      state.invoiceSearch = val
    }
  }
}

export default search

二、

在src-store的index.js里把刚刚的search.js暴露(?)出去

import search from './modules/search.js'
modules: {
    search
  },

三、使用

在mounted里把vuex里的数据拿出来,在beforcDestory里把搜索条件存进vuex

记得在清空功能里也存一下!

mounted() {
      this.queryParams.serviceCode = this.$store.state.user.name
      this.queryParams.serviceName = this.$store.state.user.nickName
      if(Object.keys(this.$store.state.search.orderSearch).length){
        this.queryParams = this.$store.state.search.orderSearch
      }
      this.getList();
    },

判断对象是否为空的方法①JSON.stringify(obj).length=='{}' ②Object.keys(obj).length

不知道为啥我第一个方法是没有用的,我之后再研究哈,这里用的是第二种

————

beforeDestroy(){
      this.$store.commit('SET_ORDER', this.queryParams)
    },

————

//重置
      searchResetClick() {
        this.queryParams = {
          pageNum: 1,
          pageSize: 50,
          serviceCode: '',
          serviceName: '',
        }
        this.$forceUpdate()
        this.$store.commit('SET_ORDER', {})
      },

用vuex后,自带的重置功能就不能使用了,否则切换页面回来后重置也只能重置成保存后的条件,需要手动重置

END

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值