isReactive() 値がリアクティブかどうかを判定する
最終更新:2026-10-22
isReactive() 値がリアクティブかどうかを判定する
isReactive() は値が reactive()(またはそこから派生したプロキシ)で作られたものかどうかを判定します。
| グループ | リアクティビティ: ユーティリティ |
|---|---|
| 種類 | API |
| スコープ | コンポーネント内 |
| Vue バージョン | 3.0+ |
| SSR 対応 | 対応 |
📝 構文
isReactive(reactive({})) // true
isReactive(ref({})) // true(ref の内部オブジェクトもプロキシされる)
isReactive({}) // false
⚙️ 引数
| value | 任意の値 |
|---|
戻り値:真偽値
▶ 例
以下のコードを編集して結果を確認しましょう:
出力:
Shows 'reactive object: true, plain object: false, ref of object: true'.
💡 ポイント
ℹ️ 補足 reactive を readonly で包んでも isReactive は true を返します(読み取り専用の層を剥がして判定するため)。
💡 ヒント 再度 reactive() を呼ぶ前にチェックすることで、二重にラップされるのを防ぎます。
🏷️ 関連ユーティリティ
💡 関連ケース
関連ケースは近日公開予定。
📚 関連チュートリアル
❓ よくある質問
Q ref(1) は true を返しますか?
A いいえ。プリミティブの ref はリアクティブなプロキシではないため、オブジェクトの ref だけが true になります。
Q readonly も検出できますか?
A readonly(reactive({})) は true を返します。純粋な readonly なら isReadonly を使ってください。
Q isProxy との関係は?
A isReactive は isProxy のうち書き込み可能なものに限定した判定です。より広い判定には isProxy を使います。