区别如下:
-
props要先声明才能取值,attrs不用先声明 -
props声明过的属性,attrs里不会再出现 -
props不包含事件,attrs包含 -
props支持string以外的类型,attrs只有string类型
综上,可以将attrs理解为增强版的props。
如果没有声明props,那么打印props,为一个空对象。如果声明了props,打印时包含声明的属性,此时context.attrs为去除了props内声明的属性外的其他方法和属性。
但是,context.attrs只支持String类型的属性,其他类型,如Boolean则不支持,非String类型的属性打印时值为空。而props则支持其他类型的属性。