我正在尝试将一些重复的代码提取到Vue组件中。我想使用HTML属性"class"将CSS类列表传递给组件,并将其与组件中定义的“默认类”合并。我希望此组件的公共接口类似于标准HTML元素,但是如果我尝试将“class”用作prop,则Vue会抛出有关使用JS关键字的错误。如果我尝试使用$attrs,则我的默认类会被清除。
是否可以合并HTML属性和本地组件数据,并在模板中使用结果?以下是我想要实现的内容:
是否可以合并HTML属性和本地组件数据,并在模板中使用结果?以下是我想要实现的内容:
<template>
<img src="imageUrl" class="classes"
</template>
export default {
computed: {
imageUrl() { return 'urlString' },
},
classes() { return `${this.$attrs.class} default-class` }
}
我期望实现者能够像这样使用我的组件:
<CustomImageComponent class="class-name another-class" />
我期望这将被渲染为:
<img src="urlString" class="class-name another-class default-class" />
class="my-static-class" :class="my-passed-classes"
。它将静态和变量组合在类名中。 - Daniel