Vue2的组件通信方式
父子组件通信
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
组件通知事件总线某件事,事件总线会通知监听该事件的所有组件。
转载自:https://juejin.cn/post/7079687594589552654