likes
comments
collection
share

Vue2的组件通信方式

作者站长头像
站长
· 阅读数 15

父子组件通信

Vue提供的通信方式,绝大部分都是父子组件通信

prop

由父组件传递到子组件。

event

由子组件通知到父组件。

attribute

子组件没有声明的属性,父组件多传递的属性会附着在子组件根元素上,通过$attrs获取。 子组件可以通过inheritAttes:false,就不会附着在根元素上,但不会影响$attrs

native修饰符

将事件直接附着在子组件根元素上。

$listeners

子组件可以通过$listeners获取父组件传递的所有事件处理函数。

v-model、sync修饰符

v-model实现双向数据绑定。 sync修饰符作用与v-model类似,弥补v-model只针对一个数据进行实现数据绑定的缺陷。在Vue3中被移除。

$parent和$children

获取当前组件的父组件和子组件的实例

$slots和$scopedSlots

通过插槽传递数据。

ref

父组件中得到子组件实例。

跨组件通信

provide和Inject

父组件通过provide提供数据,后代组件提供inject声明用到的数据。

router

组件改变了地址栏,其他组件就可以监听地址栏的变化做出相应的操作。

vuex

数据仓库

eventbus

组件通知事件总线某件事,事件总线会通知监听该事件的所有组件。