vue中的$attrs 与 $listeners 的用法


vue中的 $attrs 与 $listeners ,主要是作为一个中间层,承接组件外部与内部的属性与方法。

示例:

// child.vue 
1
7


// parent.vue 
 1 
 4 

展示效果:

 如果不使用$attrts 与 $listeners,那么会增加很多的代码量,代码不够优美简约,示例如下:


// child.vue 
 1 
 8 

parent.vue没有改动

总结:$attrs 与 $listeners ,主要是作为一个中间层,承接组件外部与内部的属性与方法。将外部传送的props都通过

v-bind="$attrs"传给内部的组件;将外部执行的事件,通过v-on="$listeners"传给内部的组件

在使用 $attrs 需要注意一下,如果自身组件也需要使用这个属性,如上述例子中的code,那么需要在props中把code这个属性拎出来,不然都用$attrs传到下面组件的话,自身this.code是获取不到值的。