传值看这个https://www.cnblogs.com/barryzhang/p/10566515.html 但是他$attrs的部分不是太好
这个https://www.jianshu.com/p/f7fa47499b39 $attrs的部分写的还可以,
其实很多时候,你在vue或者react组件里面打印一下this就能发现很多属性,值得研究,
就好像window身上那么多属性,其实很值得研究,有很多很厉害的东西都源自这里
A B C三个组件
父子 子父传值 假如A传值给B,B传值给C,虽然是同一个值,但是这样冒号传,props接的很麻烦,可以看这篇文章,https://www.cnblogs.com/wuxianqiang/p/10452662.html 大意就是
比如A要传1个属性给B用,传10个给C用,但是父子传,就会B接收A的11个属性,然后传个C,C又props接收B的10个属性......很麻烦,但是用$attrs,在B身上v-bind="$attrs"(不能简写成:"$attrs或者:="$attrs") C就可以通过$attrs使用那10个没被Bprops接收的属性了,相当于少写了20个props接收语句
爷孙 孙爷传值 ($listenter感觉像是子爷传值) 所以用$attrs,他的作用是,比如A传了name,sex给B
那么B用props接收,接了多少,剩余的属性就会到$attrs身上,如果接完了,$attrs身上就没东西
然后C组件也可以通过$attrs拿到这些属性,当然再来一个D组价就拿不到了,只能三代(虽然没试过)
我感觉$attrs主要的作用就是两种情况 A有一大堆属性要往下传 ,1.A只想给B传一两个属性,但是想给C传很多属性 2.A想给B传很多属性,但是只想给C传一两个属性
这时候,如果用props接收,C也用props接收,就会非常多和冗余,比如有几十个属性,那就.......
这个时候$attrs的作用就来了,特别是针对情况1,B用props接收需要的那一两个属性,$attrs身上就有A传过来的剩余其他属性,B组件里可以$attrs点出来,C组件v-bind="$attrs"之后也可以在C组件中$attrs点出来
不需要props接收一堆...感觉主要是这个作用把