vuex&&刷新后数据丢失&&异步请求(页面无数据)

刷新后数据丢失(一)

  • 原因一: 异步请求(页面无数据)原因:页面渲染完成,数据还没有请求回来
  • 解决方法:监听或者深度监听或者计算属性
  • 代码实现:

监听执行,但是数据依旧没有,是因为获取数据的函数没有被调用。

  // 异步监听得到的数据

  watch: {
    'Search_history': {   	 //(Search_history变化,执行下方函数)
      handler (val) {
        this.getSearchDate();
        // console.log(val)
      }
    }
  }

刷新后数据丢失(二)

  • 原因二:页面刷新,变量会释放,页面代码会重新开始执行一遍,vuex不储存数据
  • 解决方法:数据量少储存在localStorage中,数据量多,要在本页面上从后台获取数据。
  • 代码实现:
	document.localStorage.setItem('变量名', value);
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Vue 2 中,如果你在开始时使用 Vuex 从浏览器本地缓存中读取状态数据,但在初始没有设置缓存的情况下,页面成功加载后读取 Vuex 中的内容为,可以使用以下方法来确保能够正确读取到数据: 1. 在组件的 `created` 钩子函数中,先判断本地缓存是否存在数据,如果存在则将数据存入 Vuex 状态中: ```javascript export default { created() { const cachedData = localStorage.getItem('myData') // 从本地缓存中读取数据 if (cachedData) { this.$store.commit('setData', JSON.parse(cachedData)) // 将数据存入 Vuex 状态中 } } } ``` 在上述代码中,我们使用了 `localStorage.getItem()` 方法来从本地缓存中读取数据,并通过 Vuex 的 `commit` 方法将数据存入状态中。这样,在页面加载时即使没有设置缓存,也能够正确读取到数据并存入 Vuex 中。 2. 在设置了缓存之后,需要确保在更新 Vuex 状态时同时更新本地缓存: ```javascript export default { methods: { updateData(data) { this.$store.commit('setData', data) localStorage.setItem('myData', JSON.stringify(data)) // 将更新后的数据存入本地缓存 } } } ``` 在上述代码中,我们使用了 `localStorage.setItem()` 方法将更新后的数据存入本地缓存。这样,在每次更新 Vuex 状态时都会同时更新本地缓存,确保数据的一致性。 通过以上方法,你可以正确地读取到 Vuex 中的数据,无论是从本地缓存中读取还是在设置缓存之后。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值