mergeProps() 属性オブジェクトのマージ
最終更新:2026-10-22
mergeProps() 属性オブジェクトのマージ
mergeProps() は複数の属性オブジェクトをマージします。class と style は連結され、イベントリスナーはすべて保持され、それ以外の属性は後ろの値が前を上書きします。
| グループ | レンダー関数と SSR |
|---|---|
| 種類 | API |
| スコープ | コンポーネント内 |
| Vue バージョン | 3.0+ |
| SSR 対応 | 対応 |
📝 構文
mergeProps(baseProps, { class: "extra", onClick: fn })
⚙️ 引数
| ...args | 2 つ以上の属性オブジェクト |
|---|
戻り値:マージされた新しいオブジェクト
▶ 例
以下のコードを編集して結果を確認しましょう:
出力:
Shows 'a b / id=two'.
💡 ポイント
ℹ️ 補足 高階コンポーネントや属性の転送でよく使われます。コンポーネント自身の props と親からの透過属性をマージします。
💡 ヒント Vue の特殊ルールを理解しています。class/style は上書きではなくマージされ、onXxx はすべて保持されます。
⚠️ 注意 浅いマージのみです。ネストしたオブジェクトは再帰的にマージされません。
🏷️ 関連レンダー関数と SSR
💡 関連ケース
関連ケースは近日公開予定。
📚 関連チュートリアル
❓ よくある質問
Q Object.assign との違いは?
A assign は class を上書きしてしまいます。mergeProps は Vue のルールに従って class/style を連結し、リスナーを保持します。
Q イベントは上書きされますか?
A されません。onXxx はすべて保持され(順に発火します)。
Q 手動で使うものですか、自動ですか?
A コンポーネントの v-bind 透過は自動的にマージされます。手動で使うのはレンダー関数を書く場合です。