(1)、父子组件通信可以通过props和$emit
例子:
(2)、子组件可以通过$root接收父组件的数据或修改数据(响应式),也可以操作跟组件的函数
例子:
(3)、子组件可以通过$parent接收或修改父组件的元素(响应式)和函数
例子: 父组件:
子组件:
(4)、父组件可以用$refs访问子组件数据或函数(响应式)
例子:
(5) 、兄弟组件间通信可以使用eventBus(事件总线)
先创建一个eventBus.js
import Vue from 'vue'
export const EventBus = new Vue()
然后在home组件触发addFC函数发送事件
methods: {
addFC(){
console.log(EventBus);
EventBus.$emit('add', 0);
}
}
在user组件接收
mounted() {
EventBus.$on('add',(res)=>{
console.log('add:::',res);
})
},
(6)、嵌套多层的子组件与父组件通信可以使用provide
注意:provie不是响应式的,每个子组件调用的provie都是独立的
例子: