解决方法 强制页面刷新 本质上是强制执行以下所有的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要给初始值。不然数据也不会同步 也不是响应式的。