• vue中兄弟组件间通讯


    vue2.0中兄弟组件间的通讯是通过eventBus(事件发布订阅)实现的。

    eventBus.js

    import Vue from 'vue'
    
    const eventBus = new Vue()
    
    export default eventBus

     父组件brother.vue

    <template>
      <div>
        <bro1></bro1>
        <bro2></bro2>
      </div>
    </template>
    <script>
    import bro1 from '../../components/br1'
    import bro2 from '../../components/br2'
    export default{
      components: {
        bro1,
        bro2
      }
    }
    </script>

    子组件1

    bro1.vue

    <template>
    <div>
      <span>this is big bro</span>
      <input type="text" v-model="bro1">
      <button @click="sendMsg">click to send to bro2</button>
    </div>
    </template>
    <script>
    import eventBus from '../eventBus.js'
    export default{
      data () {
        return {
          bro1: ''
        }
      },
      methods: {
        sendMsg () {
         //在bro1中触发
          eventBus.$emit('bad-man-comes', this.bro1)
        }
      }
    }
    </script>

    子组件2

    bro2.vue

    <template>
    <div>
      <span>this is little bro</span>
      <input type="text" v-model="bro2">
    </div>
    </template>
    <script>
    import eventBus from '../eventBus'
    export default{
      data () {
        return {
          bro2: ''
        }
      },
      mounted () {
        eventBus.$on('bad-man-comes', (params) => {
          // 在bro2中监听
          this.bro2 = params
        })
      }
    }
    </script>

  • 相关阅读:
    demo12-回到顶部
    demo11-友情链接
    demo10-超链接标签
    demo09-程序员练习
    demo08-图片标签
    demo07-盒子标签
    demo06-字体标签
    demo05-换行标签
    转&nbsp;j2ee&nbsp;.线程池.对象池,连接池
    几种开源Java&nbsp;Web容器线程池…
  • 原文地址:https://www.cnblogs.com/ceceliahappycoding/p/10516512.html
Copyright © 2020-2023  润新知