Vue 兄弟组件通信

Vue兄弟通信
在这里插入图片描述

定义A组件

<template>
<div>
  <p>A组件</p>
  <div>{{val}}</div>
  <button @click="btn">A组件按钮</button>
</div>
</template>

<script>
import event from '@/views/event/eventbus'
export default {
  name: "A",
  data(){
    return{
      ws:'我是A组件',
      val:null
    }
  },
  created () {
    event.$on('eventFn',(res)=>{
      this.val = res
    })
  },
  updated () {
    console.log(this.val)
    if(this.val>=3){
      event.$emit('stopTime',false)
  }
  },
  methods:{
  }
}
</script>

<style scoped>

</style>

定义组件B

<template>
  <div>
    <p>B组件</p>
    <div>{{val}}</div>
    <button @click="btn">B组件按钮</button>
  </div>
</template>

<script>
import event from '@/views/event/eventbus'
export default {
  name: 'B',
  data(){
    return {
      ws: '我是B组件',
      val:null,
      time:null
    }

  },
  created () {
    this.time = setInterval(()=>{
      event.$emit('eventFn',this.val++)
    },1000)
    console.log(this.val)
  },
  updated () {
    event.$on('stopTime',(res)=>{
      if(!res){
        clearInterval(this.time)
      }
    })
  },
  methods:{
    btn () {
      console.log('触发')
      event.$emit('eventFn',this.ws)
    }
  }
}
</script>

<style scoped>

</style>

定义事件总线:eventbus

import Vue from 'vue'
export default new Vue

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kingsaj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值