方式一. 利用$attrs实现祖孙组件间的数据传递, $listeners实现祖孙组件间的事件监听
attrs包含了父作用域中不作为prop被识别(且获取)的特性绑定(class和style除外)。当一个组件没有声明任何prop时,这里会包含所有父作用域的绑定(class和style除外),并且可以通过v−bind="attrs包含了父作用域中不作为 prop 被识别 (且获取) 的特性绑定 (class 和 style 除外)。当一个组件没有声明任何 prop 时,这里会包含所有父作用域的绑定 (class 和 style 除外),并且可以通过 v-bind="attrs包含了父作用域中不作为prop被识别(且获取)的特性绑定(class和style除外)。当一个组件没有声明任何prop时,这里会包含所有父作用域的绑定(class和style除外),并且可以通过v−bind="attrs" 传入内部组件——在创建高级别的组件时非常有用。
listeners包含了父作用域中的(不含.native修饰器的)v−on事件监听器。它可以通过v−on="listeners包含了父作用域中的 (不含 .native 修饰器的) v-on 事件监听器。它可以通过 v-on="listeners包含了父作用域中的(不含.native修饰器的)v−on事件监听器。它可以通过v−on="listeners" 传入内部组件——在创建更高层次的组件时非常有用。
方式二. 利用provide/inject 实现祖孙组件间的数据传递和事件监听
provide 和 inject 主要为高阶插件/组件库提供用例,允许一个祖先组件向其所有子孙后代注入一个依赖,不论组件层次有多深,并在起上下游关系成立的时间里始终生效。
文章介绍了在Vue.js中如何利用$attrs和$listeners实现祖孙组件间的数据传递和事件监听。$attrs包含未声明为prop的父属性,而$listeners包含不含.native修饰器的v-on事件监听器,两者在构建高层级组件时非常有用。另外,provide和inject则提供了一种方式,允许祖先组件向所有子孙后代深度传递依赖,保持其在整个组件树中的有效性。
2128

被折叠的 条评论
为什么被折叠?



