vue2如何实现兄弟组件传值

组件之间的通讯是项目中比较常见的技术技巧,在 Vue 2 中,可以通过事件总线(Event Bus)来实现兄弟组件之间的数据传递。以下是一个示例,演示了兄弟组件之间的数据传递过程:

// EventBus.js
// 创建一个事件总线实例,用于兄弟组件之间的通信
import Vue from 'vue';
export default new Vue();

// BrotherA.vue
<template>
  <div>
    <button @click="sendDataToBrotherB">Send Data to Brother B</button>
  </div>
</template>

<script>
import EventBus from './EventBus';

export default {
  methods: {
    sendDataToBrotherB() {
      const data = 'Data from Brother A!';
      // 通过事件总线触发名为 'dataEvent' 的事件,并传递数据给 BrotherB 组件
      EventBus.$emit('dataEvent', data);
    },
  },
};
</script>

// BrotherB.vue
<template>
  <div>
    <p>{{ receivedData }}</p>
  </div>
</template>

<script>
import EventBus from './EventBus';

export default {
  data() {
    return {
      receivedData: '',
    };
  },
  created() {
    // 监听名为 'dataEvent' 的事件,接收 BrotherA 组件传递的数据
    EventBus.$on('dataEvent', (data) => {
      this.receivedData = data;
    });
  },
};
</script>

上述代码中,我们通过创建一个事件总线实例(EventBus),用于兄弟组件之间的通信。在 BrotherA.vue 组件中,当点击按钮时,通过事件总线触发名为 'dataEvent' 的事件,并传递数据给 BrotherB.vue 组件。

BrotherB.vue 组件中,我们在 created 钩子中监听名为 'dataEvent' 的事件,一旦接收到数据,就将其赋值给 receivedData 数据属性。

这样,兄弟组件之间就实现了数据的传递,希望可以帮助到大家

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Vue2中,兄弟组件之间传值有多种方法可以实现。其中一种方法是通过使用一个中间值的原型属性来实现数据的通信。在main.js中定义一个原型属性,可以作为中间值,在兄弟组件之间互相触发和接收来传递数据。具体步骤如下: 1. 首先,在main.js中定义一个Vue实例,并添加一个原型属性,作为中间值。例如,可以将中间值定义为data属性中的一个字段。 2. 在发送数据的组件中,通过触发一个自定义事件来传递数据。可以使用$emit方法触发事件,并将需要传递的数据作为参数传递给事件。 3. 在接收数据的组件中,可以通过绑定一个自定义事件来接收数据。可以使用$on方法监听事件,并在事件触发时执行回调函数来处理接收到的数据。 需要注意的是,在回调函数中使用箭头函数来确保this指向组件实例对象。否则,如果回调函数直接写在第二个参数处,this将不代表组件实例对象,而是undefined。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [【Vue2】兄弟组件传参方法总结](https://blog.csdn.net/weixin_44431073/article/details/125027673)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

IT光哥吖

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

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

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

打赏作者

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

抵扣说明:

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

余额充值