3.Vue非父子组件之间的通讯

Vue非父子组件之间的通讯

若是不是父子组件须要通讯,那将怎样实现呢?
首先咱们须要建立一个事件中心,经过事件中心来接收或者传递事件,做为一个中转站javascript

1.建立事件中心

let eventControl = new Vue();

2.组件1触发事件

<template>
  <div @pubEvent="changeData"></div>  //监听组件触发的事件,而后调用changeData方法
</template>

<script type="text/javascript">
  export default {
    data () {
      return {
      }
    }    
    methods: {
      changData () {
        eventControl.$emit('changTo', 'msg') //触发事件中心,以及须要传递的事件
      }
    }
  }
</script>

<style type="text/css">
</style>

此时此刻已完成须要的事件的添加到了中转站,触发事件已经完成css

3.组件2接收触发事件

<template>
  <div></div>
</template>

<script type="text/javascript">
  export default {
    data () {
      return {
        msg: ''
      }
    }    
    create () {
        eventControl.$on('changTo', () => {
          this.msg = msg                     //接收触发事件中心 
        }) 
    }
  }
</script>

<style type="text/css">
</style>

此时此刻已完成接收事件的监听在中转站,接收事件已经完成,当触发事件被点击的,则中转站中的接收事件
会监听到,从而完成费父子组件间的通讯,进行传递msg信息java

4.自定义事件传递信息这里不作阐述,方法会较为复杂,须要了解的能够观看官方Api,谢谢this

相关文章
相关标签/搜索