在 Vue 中,?toRefs(state)??的返回值是一個 新對象,其中每個屬性都是對應 ?state??中原始屬性的 ?ref??對象。具體來說:
?
返回值的結構與特性
?
1.?對象結構
- 若輸入 ?state??為 ?{ a: 1, b: 'text' }?,則 ?toRefs(state)??返回:
{
? a: ref(1), ?// ref 對象,值為 state.a
? b: ref('text') ?// ref 對象,值為 state.b
}
?
2.?核心特性
- 雙向綁定:返回的 ?ref??對象與原始 ?state??屬性雙向關聯,修改任意一方都會同步更新另一方:
const state = reactive({ count: 0 });
const refs = toRefs(state);
refs.count.value = 10; ?// state.count 變為 10
state.count = 20; ? ? ? // refs.count.value 變為 20
?
- 保持響應式:當通過 ?toRefs??解構返回值時,?ref??對象的響應式特性不會丟失:
const { count } = toRefs(state);
// 后續修改 count.value 會觸發視圖更新
總結
?
toRefs(state)? 的返回值是一個 包含多個 ref 對象的新對象,每個 ?ref? 對應 ?state? 的一個屬性,并與原始屬性雙向綁定,主要用于在解構響應式對象時保持其響應式特性。