vue中$set和$deleted原理
一:$set
- 先判断进来的目标对象是否是数组,并且是否是合法的索引
- 如果是数组就调用之前重写过的数组方法中的splice方法,传入3个参数。(响应式是修改的数组方法有pop,push,shift,unshift,splice,reverse,sort),设置为响应式数据,并且发送通知更改视图,然后返回值 return val
- 如果是对象,并且key已经存在就直接赋值 return val
- 如果是对象并且不存在ob对象(就是之前设置响应式对象添加的__ob__),如果不存在则这个对象不是响应式对象,则直接赋值 return val
- 如果是对象,并且ob对象存在,key不存在则调用defineReactive设置为响应式数据并且发送通知


二:$deteled
- 是数组就调用之前重写的数组方法(splice方法传入2个参数),设置为响应式数据,并且发送通知更改视图,然后return val
- 是对象判断target是否有这个key 没有则return
- 如果存在这个key并且是对象则使用delete删除这个属性,如果没有ob对象则直接返回,如果是响应式对象则发送通知更改视图

