ref テンプレート参照

最終更新:2026-10-22

ref テンプレート参照

ref 属性は要素やコンポーネントに参照名を付け、スクリプトから $refs や ref() / useTemplateRef() でアクセスできるようにします。

グループビルトイン
種類特殊属性
スコープテンプレート
Vue バージョン3.0+
SSR 対応対応

📝 構文

<input ref="inp">
<child-comp ref="child"></child-comp>

⚙️ 引数

props文字列の名前(Composition API では同名の変数が自動収集)。v-for 内では配列になります

▶ 例

以下のコードを編集して結果を確認しましょう:

出力:

The input is focused after mount.

💡 ポイント

ℹ️ 補足 Composition API では、const inp = ref(null) を宣言してテンプレートに ref="inp" と書くと自動収集されます(3.5 からは useTemplateRef が推奨)。
⚠️ 注意 マウント前は null です。アクセス前に null チェックするか、onMounted 以降で使ってください。
💡 ヒント データとイベント駆動を優先し、ref による直接の DOM 操作は必要なときだけにします(フォーカス、計測、サードパーティライブラリのマウント)。
関連ケースは近日公開予定。

📚 関連チュートリアル

❓ よくある質問

Q ref はリアクティブの ref() と衝突しませんか?
A 衝突しません。テンプレートの ref はマーカーで、ref() はリアクティブ API です。Composition API では同名にすると自動で紐づきます。
Q 複数の要素を参照できますか?
A v-for 内の ref は配列として収集されます(順序は保証されません)。
Q 使うべきでないのはどんなときですか?
A 状態とイベントで表現できるロジックなら ref を使わず、データ駆動のままで書いてください。
Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%