vue中detele删除对象属性时视图不能响应更新 - 解决办法

Posted 游龙翔隼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue中detele删除对象属性时视图不能响应更新 - 解决办法相关的知识,希望对你有一定的参考价值。

如下代码片段

// js
obj = {
   a: 123,
   b: 223,
   c: 323
}

// html
<li v-for="item in obj">{{ item }}</li>

此时若在methods中使用 delete this.obj.a 或者 delete this.obj["a"]会发现视图中的li不会实时更新,这种情况是由于原生delete并不能被vue检测到变化

解决办法: 使用 Vue.delete 代替 delete,这样就可以让vue捕捉到这一变化从而更新视图 操作代码:

this.$delete(this.obj, "a")

文档: (Vue.delete)[https://cn.vuejs.org/v2/api/#Vue-delete]

以上是关于vue中detele删除对象属性时视图不能响应更新 - 解决办法的主要内容,如果未能解决你的问题,请参考以下文章

vue新增属性响应式更新的问题

Vue.set 向响应式对象中添加响应式属性,及设置数组元素触发视图更新

深入Vue的响应式原理

关于Vue中的属性值无法与视图同步的问题

Proxy(vue响应式原理:数据侦测--数据劫持和数据代理)

vue对象或者数组中数据变化但是视图没有更新