vue 新增属性的数据变化时,视图不能实时更新

我有这样一个父列表,点击展开,会请求该项的字列表,并显示这个字列表。

我需要一个属性来控制,这个展开和收起,所以在请求父列表时,给父列表添加了opens属性,

我是这样添加的。

let relalist1 = res.data.contentFiles
for(let i=0; i<relalist1.length; i++){
relalist1[i].opens = false;
this.relativelistJ=relalist1;
}
 
,嗯,就是这句话relalist1[i].opens = true;
在点击展开时,我将该opens属性改为false。
this.relativelistJ
[i].opens = true;
 
这样,我自己想当然的是可以执行的,可是并没有反应,我打印出改变后的值,确实是已经改变了,但是页面上并没有实时更新这个值。
 
后来,终于知道可以使用set了。我就在改变值的时候 用了set。
 
this.$set(this.relativelistJ[x],'opens',true)
 
嗯,这样还是不行,可能有点智障了吧。因为刚学习vue,什么都不晓得。就瞎试,然后,把新增属性时,也使用set方法,就可以实现页面的实时更新了。
 
我的例子。
 
页面结构:
 
新增属性:
 
 
改变新增属性:
 
 
 
嗯,问题解决了,但是原理性的东西还是比较模糊。大神们,可以给我留言指导,非常感谢。
 
 
 
 
 
 
 
 
posted @ 2018-06-07 10:32  EllenBaby  阅读(6341)  评论(0编辑  收藏  举报