isReactive 是 Vue 3 中的一个实用函数,用于检查一个对象是否是响应式的。这个函数可以帮助你在运行时确定一个对象是否已经被 Vue 的响应式系统转换为响应式对象。
语法
import { isReactive } from 'vue';
const result = isReactive(object);
参数
object:要检查的对象。
返回值
如果对象是响应式的,返回 true。
如果对象不是响应式的,返回 false。
示例
import { reactive, isReactive } from 'vue';
const originalObject = { message: 'Hello, World!' };
const reactiveObject = reactive(originalObject);
console.log(isReactive(originalObject)); // false
console.log(isReactive(reactiveObject)); // true
注意事项
原始对象:普通对象(未经过 reactive 或 ref 处理的对象)默认不是响应式的。
嵌套对象:如果一个响应式对象包含一个被 markRaw 标记的对象,那么这个被标记的对象仍然不是响应式的。
ref 对象:isReactive 不会检查 ref 对象,而是检查 ref 的 .value 属性。如果你需要检查 ref 是否是响应式的,可以使用 isRef。
import { ref, isReactive, isRef } from 'vue';
const myRef = ref({ message: 'Hello, World!' });
console.log(isReactive(myRef)); // false
console.log(isReactive(myRef.value)); // true
console.log(isRef(myRef)); // true