const ob = (target: any).__ob__ if (target._isVue || (ob && ob.vmCount)) { process.env.NODE_ENV !== 'production' && warn( 'Avoid deleting properties on a Vue instance or its root $data ' + '- just set it to null.' ) return }
这一段if判断也是一样的,如果target是Vue实例或者是根数据对象,在非生产环境下打印警告信息。也就是不能删除Vue实例对象的属性,也不能删除根数据对象的属性,因为data本身不是响应式的。
if (!hasOwn(target, key)) { return }
如果target对象上没有key属性,直接返回。
delete target[key]
进行到这里就说明target是一个纯对象,并且有key属性,直接删除该属性。
if (!ob) { return }
如果ob对象不存在,说明target不是响应式的,直接返回。
ob.dep.notify()
如果ob对象存在,说明target是响应式的,触发响应。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持黑区网络。