toRefs() Convert an Object into Refs

Last updated: 2026-10-22

toRefs() Convert an Object into Refs

toRefs() turns each property of a reactive object into a ref so destructured values stay reactive — the standard way to destructure state.

GroupReactivity: Utilities
KindAPI
ScopeComponent
Vue Version3.0+
SSR SupportYes

📝 Syntax

const state = reactive({ a: 1, b: 2 })
const { a, b } = toRefs(state)   // both refs, still linked
a.value++                        // state.a also increments

⚙️ Arguments

objectA reactive object

Returns:A plain object mapping each key to a ref

▶ Example

Edit the code below and see the live result:

Output:

Both numbers move together — the destructured ref stays linked.

💡 Key Points

💡 Tip Return toRefs(state) from composables so callers can destructure safely.
⚠️ Warning Meaningful only for reactive objects — plain objects yield unlinked snapshots.
ℹ️ Note Returning toRefs(state) from setup works directly in templates (auto-unwrapped).
More case studies coming soon.

📚 Related Tutorials

❓ FAQ

Q What if I destructure without toRefs?
A You get snapshots that stop tracking — the UI will not update.
Q Does it work on a ref?
A Not the intended use — a ref is already reactive; use it directly.
Q Do writes flow back to the source?
A Yes — it is a two-way channel to the same property.
Web-Tutorial.com

Web-Tutorial Tech Team

A team of developers maintaining programming tutorials. Each tutorial is written and reviewed by developers with expertise in that field. We work to keep our content accurate and reliable — if you spot an issue, please let us know.

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏