useTemplateRef() テンプレート ref を取得する(3.5+ の推奨書き方)

最終更新:2026-10-22

useTemplateRef() テンプレート ref を取得する(3.5+ の推奨書き方)

useTemplateRef() は文字列のキーで同名の ref 属性のテンプレート参照を取得します。「同じ名前の変数を宣言する」というボイラープレートが不要になります。

グループテンプレートとヘルパー
種類API
スコープコンポーネント内
Vue バージョン3.5+
SSR 対応対応

📝 構文

const inputEl = useTemplateRef('my-input')

// テンプレート:<input ref="my-input">

⚙️ 引数

keyテンプレートの ref 属性値と一致する文字列

戻り値:読み取り専用の ref。マウント前は null

▶ 例

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

出力:

Clicking focuses the input.

💡 ポイント

💡 ヒント 3.5 以降の推奨書き方です。従来の書き方(同名の ref 変数 + 自動収集)もそのまま使えます。
⚠️ 注意 マウント前は null です。アクセス前に null チェックするか、onMounted 以降で使ってください。
ℹ️ 補足 v-for の中ではコンポーネント / 要素の配列になります。
関連ケースは近日公開予定。

📚 関連チュートリアル

❓ よくある質問

Q 同名の ref 変数を直接宣言するのと何が違いますか?
A 機能は同じです。useTemplateRef は同名の縛りがなく意味も明確なので、複数の参照を扱う場面に向いています。
Q 子コンポーネントのインスタンスを取得できますか?
A 取得できます。コンポーネントインスタンスを指します。そのメソッドを呼ぶには、子コンポーネント側で defineExpose で公開してください。
Q 3.5 未満ではどうしますか?
A 従来の書き方を使ってください。const txt = ref(null) とし、テンプレートで ref="txt" と書きます(コンパイル時に自動収集)。
Web-Tutorial.com

Web-Tutorial 技術チーム

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

100%