方式一. 利用$attrs实现祖孙组件间的数据传递, $listeners实现祖孙组件间的事件监听
a
t
t
r
s
包含了父作用域中不作为
p
r
o
p
被识别
(
且获取
)
的特性绑定
(
c
l
a
s
s
和
s
t
y
l
e
除外
)
。当一个组件没有声明任何
p
r
o
p
时,这里会包含所有父作用域的绑定
(
c
l
a
s
s
和
s
t
y
l
e
除外
)
,并且可以通过
v
−
b
i
n
d
=
"
attrs包含了父作用域中不作为 prop 被识别 (且获取) 的特性绑定 (class 和 style 除外)。当一个组件没有声明任何 prop 时,这里会包含所有父作用域的绑定 (class 和 style 除外),并且可以通过 v-bind="
attrs包含了父作用域中不作为prop被识别(且获取)的特性绑定(class和style除外)。当一个组件没有声明任何prop时,这里会包含所有父作用域的绑定(class和style除外),并且可以通过v−bind="attrs" 传入内部组件——在创建高级别的组件时非常有用。
l
i
s
t
e
n
e
r
s
包含了父作用域中的
(
不含
.
n
a
t
i
v
e
修饰器的
)
v
−
o
n
事件监听器。它可以通过
v
−
o
n
=
"
listeners包含了父作用域中的 (不含 .native 修饰器的) v-on 事件监听器。它可以通过 v-on="
listeners包含了父作用域中的(不含.native修饰器的)v−on事件监听器。它可以通过v−on="listeners" 传入内部组件——在创建更高层次的组件时非常有用。
方式二. 利用provide/inject 实现祖孙组件间的数据传递和事件监听
provide 和 inject 主要为高阶插件/组件库提供用例,允许一个祖先组件向其所有子孙后代注入一个依赖,不论组件层次有多深,并在起上下游关系成立的时间里始终生效。