withModifiers() イベント修飾子のラップ

最終更新:2026-10-22

withModifiers() イベント修飾子のラップ

withModifiers() はレンダー関数内で、イベントハンドラーに修飾子の挙動(stop、prevent、once など)を付与します。

グループレンダー関数と SSR
種類API
スコープコンポーネント内
Vue バージョン3.0+
SSR 対応対応

📝 構文

h("button", { onClick: withModifiers(fn, ["prevent", "stop"]) }, "送信")

⚙️ 引数

handler, modifiersイベントハンドラー + 修飾子名の配列

戻り値:ラップされたイベントハンドラー

▶ 例

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

出力:

Inner clicks stop at the inner handler; outer clicks log the outer one.

💡 ポイント

ℹ️ 補足 テンプレートの .stop/.prevent はコンパイル後にこれを呼び出します。挙動は完全に同じです。
💡 ヒント 手書きのレンダー関数や高階コンポーネントで修飾子が必要なときに使います。
⚠️ 注意 修飾子名は短い名前を使います:'stop'、'prevent'、'self'、'once'。キー修飾子は 'enter' などと書きます。
関連ケースは近日公開予定。

📚 関連チュートリアル

❓ よくある質問

Q テンプレートでも使う必要がありますか?
A 不要です。テンプレートには @click.stop のような糖衣構文があります。
Q 複数の修飾子を重ねられますか?
A できます。['prevent', 'stop'] のように指定すると順に適用されます。
Q 手書きの e.stopPropagation() との違いは?
A 効果は同じです。withModifiers の方が短く、テンプレートの挙動とも統一されます。
Web-Tutorial.com

Web-Tutorial 技術チーム

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

100%