Options
All
  • Public
  • Public/Protected
  • All
Menu

Index

Interfaces

Type aliases

Functions

Type aliases

UnwrapRef

UnwrapRef<T>: T extends Ref<infer U> ? U : T

Type parameters

  • T

Functions

isRef

  • 判断是否是响应式变量

    example
    import { reactive, ref, isRef } from '@zhengxs/composition-api'
    
    const counter = ref(0)
    
    console.log(isRef(counter)) // true
    
    const state = reactive({})
    
    // 这是响应式对象,但不是响应式变量
    console.log(isRef(state)) // false
    

    Type parameters

    • T

    Parameters

    • obj: unknown

      判断对象

    Returns obj is Ref<UnwrapRef<T>>

    如果返回 true 就是一个响应式变量

ref

  • 创建响应式变量

    将值封装在一个对象中,看似没有必要,但为了保持 JavaScript 中不同数据类型的行为统一,这是必须的。 这是因为在 JavaScript 中,Number 或 String 等基本类型是通过值而非引用传递的

    注意:和官方的区别在于,无法在 ref 属性上使用

    example
    import { ref } from '@zhengxs/composition-api'
    
    const counter = ref(0)
    
    console.log(counter) // { value: 0 }
    console.log(counter.value) // 0
    
    counter.value++
    console.log(counter.value) // 1
    

    Type parameters

    • T

    Parameters

    • value: T

    Returns Ref<UnwrapRef<T>>

    响应式变量

unref

  • 如果参数是一个 ref,则返回内部值,否则返回参数本身

    这是 val = isRef(val) ? val.value : val 的语法糖函数。

    example
    import { ref, unref } from '@zhengxs/composition-api'
    
    const counter = ref(0)
    
    console.log(unref(counter)) // 0
    
    const state = reactive({})
    
    console.log(unref(state)) // {}
    
    console.log(unref(1)) // 1
    

    Type parameters

    • T = unknown

    Parameters

    • obj: T

      判断对象

    Returns UnwrapRef<T>