起因
vue传值经常使用父传子和传父,但是当需要子组件中的子组件和父组件传值的时候 使用父传子就比较麻烦了 需要连续传两次 而使用 provide 和inject 只能单方面传值不能互相传值 所以用到 了 $attr 和 $listeners
使用方法
看图即可
图上的意思是 爷给孙传值的时候 先给子绑定属性 这个时候相当于父亲传给子 子组件不需要props 只需要this.
a
t
t
r
s
来那值当给孙组件传值的时候给它绑定
v
−
b
i
n
d
=
"
attrs来那值 当给孙组件传值的时候 给它绑定 v-bind="
attrs来那值当给孙组件传值的时候给它绑定v−bind="attr" v-on=“$listeners” 一个是属性 一个是方法
然后给孙组件使用props 接受参数
孙给爷传也是用$emit 方法也是绑定在子组件上