1、isProxy
作用:判断当前数据是否为代理数据。
注意:它只对通过 reactive,readonly,shallowReactive,shallowReadonly 这四个方法包裹的数据返回true,对于 ref 以及通过 new Proxy 代理的数据返回都是false。
2、isReactive
作用:判断当前数据是否reactive包裹的数据。
注意:只对 reactive,shallowReactive 包裹的数据为true,其他为false。
3、isReadonly
作用:判断数据是否为readonly包裹的数据。
注意:只对 readonly,shallowReadonly 包裹的数据返回true,其他为false。
4、注意
如果 readonly 包裹的是一个 reactive 数据的话,那么 isReadonly, isReactive 都为true。
但是如果 reactive 包裹的是一个 readonly 的数据的话,那么 isReadonly 为true,isReactive 为false。
原因是:readonly 包裹的数据是一个只读的数据,不能在通过reactive方法进行代理。可以查看这两的数据。
readonlyObj
reactiveObj
可以看出 readonlyObj 被代理的2次,而 reactiveObj 被代理1次。所以 reactive(readonly(obj)) 这种只会被人 readonly 代理,不会再被 reactive 代理了。