vue 请求回数据存放到vuex中,数据请求回来vuex中数据改变,但是页面数据没有动

解决方法 强制页面刷新 本质上是强制执行以下所有的h函数

1、加个this.$forceUpdate();

2、location.reload()

3、this.$router.go(0)

4、console.log(res); //打印一下,没错就是打印一下 数据也是动了!


问题所在:Vue的template通过babel会转换成h函数
你的数据没更新代表h函数没有添加到订阅器里面
this.$foreUpdate()和location.reload() 其实就是强制这些h函数再执行一遍


Vue原理就是 你写的template模板 里面用到的变量以及一些函数  最终经过babel的解析变成h函数
这个h函数开始的时候会执行一次、然后在Vue2经过Object.defineProperty get收集这个函数用到的变量  set 重新执行订阅器。。。。。

在Vue2 中增加和删除属性不会触发 get 和set。。。 vue3就好了。。。Vue3的Proxy可以监听到删除 添加

也不是没有别的方法,把异步请求直接封装在vuex中 一般是Action→到 mutaion→再到state。还有 Vuex的state要给初始值。不然数据也不会同步 也不是响应式的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值