javascript vue自行实现broadcast,dispatch
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript vue自行实现broadcast,dispatch相关的知识,希望对你有一定的参考价值。
function broadcast(componentName, eventName, data) {
this.$children.forEach(child => {
let name = child.$options.name
if (name === componentName) {
// child.$emit.call(child, eventName, data)
child.$emit(eventName, data)
} else {
broadcast.call(child, componentName, eventName, data)
}
})
}
function dispatch(componentName, eventName, data) {
let parent = this.$parent || this.$root
let name = parent.$options.name
while (parent && name !== componentName) {
parent = parent.$parent
if (parent) {
name = parent.$options.name
}
}
if (parent) {
parent.$emit.call(parent, eventName, data)
}
}
export default {
methods: {
broadcast(componentName, eventName, data) {
broadcast.call(this, componentName, eventName, data)
},
dispatch(componentName, eventName, data) {
dispatch.call(this, componentName, eventName, data)
}
}
}
以上是关于javascript vue自行实现broadcast,dispatch的主要内容,如果未能解决你的问题,请参考以下文章