为什么Vuex内数据改变了而组件没有进行更新?

这两天在进行一个首页的制作,结果就碰到了标题上所述的问题了,用了一天的时间在网上查资料。终于找出了问题所在

Vuex的数据写在store里,在组件中需要用到this.$store.commit() 来调用store中mutations 里面的一些数据处理方法来向后端请求数据。并在computed计算属性中通过this.$getters来获取Vuex的数据。

在控制台中查看Vuex获取后端数据的情况,数据获取完成并且被getters到组件中,但组件显示数据居然还是空的。而computed是会自动监听数据变化进行组件更新的。这里为什么没有生效呢?

原因当然是因为没有监听到数据变化。为什么没有监听到数据变化呢?

其实,是由于vue对数组数据的变化只能监听到以下几种变化

  • push()
  • pop()
  • shift()
  • unshift()
  • splice()
  • sort()
  • reverse()

而我在对数据进行赋值的时候是直接用 a[i] = b[i]的方式进行赋值的。如果换成a.push(b[i])那么视图就会随着数据的变化而更新了。

猜你喜欢

转载自www.cnblogs.com/The-master-of-time/p/10614750.html
今日推荐