分享一个无意间发现的vuex修改本地数据的方法

这是我在写公司项目中的修改用户信息的功能的时候无意用到的,当用户修改完信息后,是要把数据通过API发送给后台,成功后返回上一个页面并显示,我一直都是在返回上一页面时,在ready里面重新发送请求拿去数据,但这样的话就会出现:

  1. 请求失败,导致数据没拿到,页面显示为空

  2. 就算请求成功,用户也会先看到一片空白,然后在蹦出数据来

当然可以在页面加载loading,成功后隐藏,失败返回什么的。但是像这种修改用户信息的页面,其实但修改信息的API请求成功后,用户信息其实就已经修改成功了,也就是讲其实不发请求拿数据,我们也知道,这条数据肯定是修改成功的,所以这个时候就可以通过修改本地store里面的数据来改变页面的数据显示
修改本地数据一般都是用的actions,通过dispatch来通知mutations来修改store中的数据,但是我当时由于是自己摸索,所以我是直接通过getters来修改的数据

clipboard.png
就像图中的箭头指的位置一样,当请求成功时,因为then只有成功和失败两种状态,我就直接修改了userinfo中的值,没有报错提示,而且修改成功了,所以我一直是以为这样是修改本地数据的方法(虽然文档明确写了要通过actions去通知修改store里面的数据)
直到.......有一次我需要把api中返回回来的数据整体替换掉的时候,报错了,提示我只能读,不能写,我才直到原来修改本地数据要通过actions,咳咳!这是个误会,额呵呵!
我不知道这种方法是否早就有人知道了,或者有什么隐患,不过感觉如果是像我这样只需要修改一个或者两三个属性,不需要全部修改的时候,这种方式更为简单,不需要去在写一个actions来修改,所以大家权衡下,想怎么用就看你们的了,哈哈,毕竟我只是个实习生,我懒得去研究这是什么原因导致我能直接修改getters的值的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值