在vue2:父组件中的数组没有响应子组件中的splice操作-优快云博客中,曾创建了一个compute属性的数组来作为props传入数组对象的拷贝,在子组件中使用。
但是根据项目需要,该数组对象需要支持树形数据结构,且层级不限。在使用的过程中,不仅仅会修改根节点,很多时候会对子节点进行增删改操作,而对这些子节点的数据进行操作后,就需要改变this.moduleList的地址,使它每次都是一个新的数组,否则页面无法捕获到这种更新,也就无法实时响应。
this.moduleList = [...this.moduleList]
但是执行时提示你想要修改一个计算属性但是没有设置setter。
再一次理解计算属性
在Vue中,计算属性是根据它们的依赖进行动态计算的。由于计算属性没有setter,所以默认情况下是只读的,即不能修改计算属性的值。
如果你尝试修改计算属性的值但又没有定义setter,Vue会发出一个警告,提示你想要修改一个计算属性但是没有设置setter。这是因为计算属性的值应该是通过其他的响应式属性计算得到的,