关于透传属性的一些疑问
来源:6-3 Icon 组件编码第一部分 - 完善功能以及样式添加

棉花_envxW3
2025-06-20
inheritAttrs控制的是非props属性,而不是props属性,本例中自定义的type和color都是props属性,它们已经作为props属性传给了子组件Icon,在本例中, :class="{ [vk-icon--${type}
]: type }“的后一个type就来自于props,它是props.type的简写。type和style作用于“i”标签与inheritAttrs无关,所以我认为v-bind=”$attrs"和inheritAttrs:false这两句完全可以删掉。
写回答
1回答
-
张轩
2025-06-21
同学你好
你的观点说的是正确的。如果父组件只传了 type 和 color(都是 props),且子组件的 <i> 标签的 :class 和 style 只用到了 props,那么 inheritAttrs: false 和 v-bind="$attrs" 可以删除,因为它们没实际作用。
但如果父组件可能传非 props 属性(比如额外的 class 或事件),保留这两句更安全,增加组件灵活性。建议检查 $attrs 是否为空:若为空,可删;若不为空,建议保留。
012025-06-24
相似问题