码迷,mamicode.com
首页 > 其他好文 > 详细

vue数据传递的特殊实现技巧

时间:2018-01-25 13:08:45      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:计算   return   通信   返回   通过   依赖   upd   class   解决   

最近碰到了比较多的关于vue的eventBus的问题,之前定技术选型的时候也被问到了,vuex和eventBus的使用范围。所以简单的写一下。同时有一种特殊的实现方案。

有这么几种数据传递方式,vuex、props、eventBus和特殊的eventBus。

特殊的eventBus

// bus
const bus = new Vue({
  data () {
    return {
      // 定义数据
      val1: ‘‘
    }
  },
  created () {
    // 绑定监听
    this.$on(‘updateData1‘, (val)=>{
      this.val1 = val
    })
  }
})


//数组发出组件
import bus from ‘xx/bus‘
// 触发在bus中已经绑定好的事件
bus.$emit(‘update1‘, ‘123‘)

//数据接收组件
{{val1}}
// 使用computed接收数据
computed () {
  val1 () {
    // 依赖并返回bus中的val1
    return bus.val1
  }
}

 

与正统的eventBus不同

  1. 正统的eventBus只是用来绑定触发事件,并不关心数据,不与数据发生交集。而这个方案多一步将数据直接添加在bus实例上。且事件监听与数据添加需提前定义好。

  2. 数据接收方不再使用$on来得知数据变化,而是通过计算属性的特征被动接收。

解决的问题

  1. 通信组件需同时存在?数据在bus上存储,所以没有要求。

  2. 多次绑定?绑定监听都在bus上,不会重复绑定。

  3. 数据只在$emit后可用?使用计算属性直接读取存在bus上的值,不需要再次触发事件。

 

vue数据传递的特殊实现技巧

标签:计算   return   通信   返回   通过   依赖   upd   class   解决   

原文地址:https://www.cnblogs.com/coffeelovetea/p/8350629.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!