isReactive() Check Whether a Value Is Reactive
Last updated: 2026-10-22
isReactive() Check Whether a Value Is Reactive
isReactive() reports whether a value was created by reactive() or a proxy derived from one.
| Group | Reactivity: Utilities |
|---|---|
| Kind | API |
| Scope | Component |
| Vue Version | 3.0+ |
| SSR Support | Yes |
📝 Syntax
isReactive(reactive({})) // true
isReactive(ref({})) // true (ref deep-proxies its object)
isReactive({}) // false
⚙️ Arguments
| value | Any value |
|---|
Returns:Boolean
▶ Example
Edit the code below and see the live result:
Output:
Shows 'reactive object: true, plain object: false, ref of object: true'.
💡 Key Points
ℹ️ Note Wrapping reactive with readonly still reports true (the readonly layer is unwrapped).
💡 Tip Avoid double wrapping by checking before calling reactive() again.
🏷️ Related Utilities
💡 Related Cases
More case studies coming soon.
📚 Related Tutorials
❓ FAQ
Q Does ref(1) return true?
A No — a primitive ref is not a reactive proxy; only refs of objects match.
Q Does it detect readonly?
A readonly(reactive({})) is true; for plain readonly use isReadonly.
Q Relation to isProxy?
A isReactive is the writable subset of isProxy.