1. 在main.js 中写入
/**
*
* 针对父子组件向上通知
* 子组件
* this.$dispatch('方法', 参数)
* 父组件
* this.$on('方法', (val) => {})
*/
Vue.prototype.$dispatch = function(eventName, value) {
let parent = this.$parent;
while (parent) {
parent.$emit(eventName, value);
parent = parent.$parent;
}
};
/**
*
* 针对父子组件向下通知
* 父组件
* this.$broadcast('方法', 参数)
* 子组件
* this.$on('方法', (val) => {})
*/
Vue.prototype.$broadcast = function(eventName, value) {
const broadcast = children => {
children.forEach(child => {
child.$emit(eventName, value);
if (child.$children) {
broadcast(child.$children)
}
});
}
broadcast(this.$children);
};