Vue3 组件传值,props 与 attrs 的区别

357 阅读1分钟

区别如下

  1. props 要先声明才能取值,attrs 不用先声明

  2. props 声明过的属性,attrs 里不会再出现

  3. props 不包含事件,attrs 包含

  4. props 支持 string 以外的类型,attrs 只有 string 类型

综上,可以将attrs理解为增强版的props

如果没有声明props,那么打印props,为一个空对象。如果声明了props,打印时包含声明的属性,此时context.attrs为去除了props内声明的属性外的其他方法和属性。

但是,context.attrs只支持String类型的属性,其他类型,如Boolean则不支持,非String类型的属性打印时值为空。而props则支持其他类型的属性。