Contents
Tags

一、isRef() 检查某个值是否为 ref

  • 基本使用
1let foo: unknown
2if (isRef(foo)) {
3  foo.value
4}

 

  • 实现原理 (packages/reactivity/src/ref.ts)

通过检测对象的内部属性 __v_isRef 来判断对象是否为 Ref

1/**
2 * Checks if a value is a ref object.
3 *
4 * @param r - The value to inspect.
5 * @see {@link https://vuejs.org/api/reactivity-utilities.html#isref}
6 */
7export function isRef<T>(r: Ref<T> | unknown): r is Ref<T>
8export function isRef(r: any): r is Ref {
9  return !!(r && r.__v_isRef === true)
10}

 

二、其他

学习的记录,仅供参考