设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 重新 试卷 文件
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

8种vue组件通信方式详细解析实例(4)

发布时间:2019-04-10 17:39 所属栏目:21 来源:web秀
导读:vue1.0中提供了这种方式,但vue2.0中没有,但很多开源软件都自己封装了这种方式,比如min ui、element ui和iview等。 比如如下代码,一般都作为一个mixins去使用, broadcast是向特定的父组件,触发事件,dispatch是

vue1.0中提供了这种方式,但vue2.0中没有,但很多开源软件都自己封装了这种方式,比如min ui、element ui和iview等。 比如如下代码,一般都作为一个mixins去使用, broadcast是向特定的父组件,触发事件,dispatch是向特定的子组件触发事件,本质上这种方式还是on和on和emit的封装,但在一些基础组件中却很实用。

  1. function broadcast(componentName, eventName, params) { 
  2.  this.$children.forEach(child => { 
  3.  var name = child.$options.componentName; 
  4.  if (name === componentName) { 
  5.  child.$emit.apply(child, [eventName].concat(params)); 
  6.  } else { 
  7.  broadcast.apply(child, [componentName, eventName].concat(params)); 
  8.  } 
  9.  }); 
  10. export default { 
  11.  methods: { 
  12.  dispatch(componentName, eventName, params) { 
  13.  var parent = this.$parent; 
  14.  var name = parent.$options.componentName; 
  15.  while (parent && (!name || name !== componentName)) { 
  16.  parentparent = parent.$parent; 
  17.  if (parent) { 
  18.  name = parent.$options.componentName; 
  19.  } 
  20.  } 
  21.  if (parent) { 
  22.  parent.$emit.apply(parent, [eventName].concat(params)); 
  23.  } 
  24.  }, 
  25.  broadcast(componentName, eventName, params) { 
  26.  broadcast.call(this, componentName, eventName, params); 
  27.  } 
  28.  } 
  29. }; 

8. vuex处理组件之间的数据交互

如果业务逻辑复杂,很多组件之间需要同时处理一些公共的数据,这个时候才有上面这一些方法可能不利于项目的维护,vuex的做法就是将这一些公共的数据抽离出来,然后其他组件就可以对这个公共数据进行读写操作,这样达到了解耦的目的。

【编辑推荐】

  1. Vue服务端渲染实践 ——Web应用首屏耗时最优化方案
  2. JS框架对比,Angular还是Vue适宜才最好
  3. Vue使用技巧和项目中遇到的问题
  4. Vue.js的注意事项与技巧
  5. Vue UI:Vue 开发者必不可少的工具
【责任编辑:赵宁宁 TEL:(010)68476606】
点赞 0

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读