$ $ Despacho y código fuente de difusión:
la función de transmisión (componentName, eventName, los params) {
el presente . $ children.forEach (Child => {
nombre const = Niño. options.name $
// nombre del componente componentName consistente con la entrada
SI (nombre === componentName) {
// eventName evento de disparo subconjunto
niño $ emit.apply (niño, [eventName] .concat (los params)).
} else {
broadcast.apply (niño, [componentName, eventName] .concat ([params])); // eslint- line-disable
}
})
}
de exportación por defecto {
Métodos: {
// gatillo hasta eventos
el envío $ (componentName, eventName, params) {
// obtener la instancia principal
let matriz = el presente . $ matriz || el presente . $ raíz
// obtener el nombre del componente
del nombre de Let = padres. $ options.name
// búsquedas recursivas en consonancia con el componentName nombre del componente
al mismo tiempo (padre && (! nombre nombre ||! == componentName)) {
padres = padres. $ matriz
SI (padre) {
nombre = padres. options.name $
}
}
SI (padre) {
// componente para eventName gatillo evento
los padres. $ emit.apply (padre, [eventName] .concat (los params))
}
},
// caso de envío al promotor (Sol) ensamblaje
$ Broadcast (componentName, eventName, los params) {
broadcast.call ( el este , componentName, eventName , el params)
}
}
}