首页 > 其他 > 详细

vue ElementUI中dispatch和broadcast事件派发(通过mixin引入使用)

时间:2021-07-20 15:28:24      阅读:19      评论:0      收藏:0      [点我收藏+]
function broadcast(componentName, eventName, params) {
  this.$children.forEach(child => {
  var name = child.$options.componentName;
  if (name === componentName) {
    child.$emit.apply(child, [eventName].concat(params));
  } else {
    broadcast.apply(child, [componentName, eventName].concat([params]));
  }
});
}
export default {
methods: {
  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));
    }
  },
  broadcast(componentName, eventName, params) {
    broadcast.call(this, componentName, eventName, params);
  }
 }
};
技术分享图片

 

 

vue ElementUI中dispatch和broadcast事件派发(通过mixin引入使用)

原文:https://www.cnblogs.com/zerofan/p/15034279.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!