app.directive() ディレクティブのグローバル登録

最終更新:2026-10-22

app.directive() ディレクティブのグローバル登録

app.directive() はグローバルなカスタムディレクティブを登録します。どのコンポーネントテンプレートでも v-xxx として使えます。権限制御やクリックアウトサイドなどの共通挙動に向いています。

グループグローバル API
種類API
スコープグローバル
Vue バージョン3.0+
SSR 対応対応

📝 構文

app.directive("focus", {
  mounted(el) { el.focus() }
})

⚙️ 引数

name, directive?ディレクティブ名(v- を使う場合は接頭辞を除く)+ ディレクティブ定義(mounted/updated などのフックを含む)

戻り値:アプリインスタンス(チェーン可能)

▶ 例

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

出力:

The input receives focus automatically.

💡 ポイント

ℹ️ 補足 ディレクティブのフックはライフサイクルと同じ名前です:created/beforeMount/mounted/beforeUpdate/updated/beforeUnmount/unmounted。
💡 ヒント コンポーザブルにできるものはコンポーザブルを優先してください。ディレクティブは「純粋な DOM 挙動」を広く再利用する場面に向いています。
⚠️ 注意 ディレクティブの引数と修飾子は binding オブジェクトに入ります。分割代入で取り出してください。
関連ケースは近日公開予定。

📚 関連チュートリアル

❓ よくある質問

Q コンポーザブルとの使い分けは?
A 要素を直接操作し、広く再利用する → ディレクティブ。状態とロジックが必要 → コンポーザブル。
Q ディレクティブは引数を受け取れますか?
A 受け取れます。v-demo:arg.mod="value" のように書き、binding.arg/modifiers/value から読み取ります。
Q ローカルディレクティブはどう書きますか?
A コンポーネント内の directives オプションで宣言します。そのコンポーネントのテンプレートでのみ使えます。
Web-Tutorial.com

Web-Tutorial 技術チーム

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

100%