Vue2.4.0 新增的inheritAttrs,attrs

官方inheritAttrs,attrs文档https://cn.vuejs.org/v2/guide/components-props.html,从最下面的'非 Prop 的特性'开始看,看到最后

Vue2.4.0 新增的inheritAttrs,attrs
1.适用于Vue中全套层数深的组件,从父组件向子组件传递数据(除style和class)
2.当一个组件没有声明任何prop时候,attrs里面包含着全部的上层组件传递的所有数据(除style和class)
3.当声明了prop时候,attrs里面包含除去prop里面的数据剩下的数据。

inheritAttrs
1.当在子组件中设置inheritAttrs: false的时候,attrs里面的属性不会当做html的data属性渲染在dom节点之上。
2.在子组件中不进行设置inheritAttrs的时候,attrs里面的属性会渲染在html节点之上
3.当设置为inheritAttrs: false的时候,在组件的声明周期中可以通过 this.$attrs 获取里面的上层组件数据。
---------------------
以上说明来自https://blog.csdn.net/qq_15253407/article/details/82964047

看官方文档时,以为class也适用inheritAttrs,attrs,可以传递给子孙组件,作为属性使用,
但是实际开发过程中发现适用inheritAttrs,attrs除style和class的其他属性且子组件没有在props里面声明该属性才可以
当在子组件中设置inheritAttrs: false的时候,attrs里面的属性是没有style和class的

猜你喜欢

转载自www.cnblogs.com/zhyzhy/p/10222274.html