18910140161

Vue3 属性继承问题

顺晟科技

2021-06-19 08:06:25

400

组件代码:


顺晟科技:

预期的结果:

attrs

你的attrs肯定会覆盖class啊,:class="[‘test’,attrs.class]"很久没写vue。不知道语法对不对,大概这么个意思

:class="[‘test’,attrs.class]"写在{…attrs}后面,或者把attrs解构出class,其他参数{…rest}

结果:

然后模板里面都可以直接使用 $attrs 来指定,在哪个dom继承。

来设置是否需要(根组件)默认继承。

这个是在组件选项上设置 inheritAttrs: false 时才会禁用 attribute 继承。目测这个 class 没有合并的真实原因就是被 {...attrs} 覆盖了。如果组件 “不是多根的” 或者 “不需要指定元素继承” 的话,建议直接去掉这句 {...attrs}

QA: 有什么解决的办法吗?

使用组件

谢谢你的回复去掉{...attrs} 话没有效果。

谢谢你的回复。我现在的解决方案就是这样的

因为编写 vue2.x 组件的不需要这样写, 因为 vue3禁止属性继承 所有我想问下有没有更好的编写方法。

你的问题好像是 后面的class把前面的class设置给覆盖掉了,和是否继承没啥关系。或者说,正是因为继承了,才会把前面的给覆盖掉了。

vue3并没有 禁用 Attribute 继承 ,而是是说可以通过

相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航