vue跨级向父组件发消息

43 阅读1分钟

子组件跨级向父组件发消息 源码:node_modules\element-ui\lib\mixins\emitter:

dispatch: function dispatch(componentName, eventName, params) {
      var parent = this.$parent || this.$root;
      var name = parent.$options.componentName;

      while (parent && (!name || name !== componentName)) {
        parent = parent.$parent;

        if (parent) {
          name = parent.$options.componentName;
        }
      }
      if (parent) {
        parent.$emit.apply(parent, [eventName].concat(params));
      }
    }
    

子组件:

this.dispatch('componentName', 'eventName', [params])

父组件:

export default{
    componentName: "componentName",
}
this.$on('eventName', (params) => {
    // do sth
})