unref() 如果參數是一個ref則返回它的value,否則返回參數本身
unref(val) 相當於val=isRef(val)?val.value:val
function initialCount(value: number | Ref<number>) {
// Make the output be true
console.log(value === 10)
}
const initial = ref(10)
initialCount(unref(initial)) // 必然輸出true
isref() 檢查一個值是否是一個ref對象
toRef、toRefs的本質是引用,修改響應式數據,會影響到原始數據,視圖不會更新
toRef 一次僅能設置一個數據,接收兩個參數,第一個參數是哪個對象,第二個參數是對象的哪個屬性
toRefs接收一個對象作爲參數,它會遍歷對象身上的所有屬性,然後挨個調用toRef執行
const state = reactive({
foo: 1,
bar: 2,
})
// const fooRef = toRef(state,'foo')
const fooRef = toRefs(state).foo
fooRef.value++
console.log(state.foo === 2)
state.foo++
console.log(fooRef.value === 3)