码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2019-04-08 16:03:53      阅读:347      评论:0      收藏:0      [点我收藏+]

标签:组件   计算   时间   ons   tor   getters   shift   标题   没有   

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

 

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])那么视图就会随着数据的变化而更新了。

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

标签:组件   计算   时间   ons   tor   getters   shift   标题   没有   

原文地址:https://www.cnblogs.com/The-master-of-time/p/10614750.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!