mergeProps() 合并属性对象
最后更新:2026-10-22
mergeProps() 合并属性对象
mergeProps() 合并多个属性对象:class 与 style 会拼接、事件监听会全部保留,后者的其他属性覆盖前者。
| 分组 | 渲染函数与 SSR |
|---|---|
| 类型 | API |
| 作用域 | 组件内 |
| Vue 版本 | 3.0+ |
| SSR 支持 | 支持 |
📝 语法
mergeProps(baseProps, { class: "extra", onClick: fn })
⚙️ 参数
| ...args | 多个属性对象 |
|---|
返回值:合并后的新对象
▶ 示例
修改下面的代码,在预览区实时查看效果:
输出:
显示「a b / id=two」——class 合并、id 取后者。
💡 要点
ℹ️ 说明 写高阶组件/转发属性时常用:把组件自身 props 与父级透传属性合并。
💡 提示 它理解 Vue 的特殊规则:class/style 合并而不覆盖,onXxx 全部保留。
⚠️ 注意 它是浅合并:嵌套对象不会递归合并。
🏷️ 相关渲染函数与 SSR
💡 相关案例
更多案例即将上线。
📚 相关教程
❓ 常见问题
Q 和 Object.assign 的区别?
A assign 会把 class 覆盖掉;mergeProps 按 Vue 规则拼接 class/style 并保留监听。
Q 事件会被覆盖吗?
A 不会,onXxx 全部保留(按序触发)。
Q 手动用还是自动?
A 组件的 v-bind 透传是自动合并;手写渲染函数时才需要它。