Reactive判断的API
1.isProxy
- 检查对象是否是由 reactive 或 readonly创建的 proxy。
2.isReactive
- 检查对象是否是由 reactive创建的响应式代理:
- 如果该代理是 readonly 建的,但包裹了由 reactive 创建的另一个代理,它也会返回 true.这个时候就是返回
1
const info = readonly(reactive({name: "beichen"}));
true
3.isReadonly
- 检查对象是否是由 readonly 创建的只读代理。
4.toRaw
- 返回 reactive 或 readonly 代理的原始对象(不建议保留对原始对象的持久引用。请谨慎使用)。
1
2
3
4// 第一种(常见用法)
const info = {name: "beichen"};
const readonlyInfo = readonly(info);
// 这里的info就是原始对象
5.shallowReactive
- 创建一个响应式代理,它跟踪其自身 property 的响应性,但不执行嵌套对象的深层响应式转换 (深层还是原生对象)。
1
const info = reactive({name: "beichen", friends: {name: "beichenzero}})
- 自身原本是对info.name以及info.friends.name都包含响应式的转换
当如我们执行:1
const info = shallowReactive({name: "beichen", friends: {name: "beichenzero}})
- 此时的info里面只有info.name是响应式改变的,原因是shallowReactive只做了一个浅层代理
5.shallowReadonly
- 创建一个 proxy,使其自身的 property 为只读,但不执行嵌套对象的深度只读转换(深层还是可读、可写的)。
1
const info = readonly({name: "beichen", friends: {name: "beichenzero}})
- 自身原本是对info.name以及info.friends.name都是不可改写的,都会报一个警告
当如我们执行:1
const info = shallowReadonly({name: "beichen", friends: {name: "beichenzero}})
- 此时的info里面只有info.name是只读的,原因是shallowReadonly只做了一个浅层代理