【vue警告】[Vue warn]: Extraneous non-props attributes (class) were passed to component but could
这个警告信息表明你在Vue组件中使用了一个不是该组件props特性的非 prop 属性(在这个案例中是class
属性)。Vue 2.x 版本中,如果你在模板中对一个组件使用了一个它没有定义为 prop 的自定义属性,你可能会看到这样的警告。
解决方法:
- 确认你是否意图将
class
作为prop传递给子组件。如果是,请在子组件中定义一个prop来接收它:
Vue.component('my-component', {
props: ['class'],
// ...
});
- 如果
class
是作为普通的HTML属性使用,确保你没有错误地将它放在子组件的标签上。普通的HTML属性对子组件是透明的,不需要作为prop处理。 - 如果你不需要将
class
作为prop传递,而是想要设置子组件的class,那么直接在子组件的模板中使用class
:
<template>
<div class="my-class">
<!-- 其他内容 -->
</div>
</template>
- 如果你正在使用Vue 3.x,它默认对props进行了更严格的检查,这个警告可能不会再出现,除非你显式地设置了
inheritAttrs: false
并且明确地在子组件的模板中使用$attrs
来接收和传递非prop属性。
确保在修改后,组件的行为和预期一致,不会引入不必要的副作用。
评论已关闭