作用
將值、refs 或 getters 規範化為值。這與 unref() 類似,不同的是此函式也會規範化 getter 函式。如果引數是一個 getter,它將會被呼叫並且返回它的返回值。
簡單來說,toValue
函式的目的是將傳入的值規範化為一個普通的值,不管傳入的是普通值、ref
物件,還是一個返回值的 getter
函式。它會自動識別你傳入的是什麼,並且始終返回對應的值。
- 普通值:直接返回這個值。
ref
物件:返回ref
的.value
。getter
函式:呼叫這個函式,並返回其結果。
toValue(1) // 返回 1,因為傳入的是普通值
toValue(ref(1)) // 返回 1,因為傳入的是 `ref` 物件,它的 `.value` 是 1
toValue(() => 1) // 返回 1,因為傳入的是一個返回 1 的函式,函式被呼叫並返回 1
應用
toValue
的主要作用是在處理未知型別輸入時統一行為。比如,你編寫一個可以處理各種輸入型別的函式,無論是值、ref
,還是 getter
,你都希望得到一個最終的值,而不需要關心輸入的具體型別。這時 toValue
就派上用場了。