当前位置:首页 > VUE

实现vue兄弟组件通信

2026-01-22 03:49:00VUE

使用事件总线(Event Bus)

创建一个全局的事件总线实例,通过$emit$on实现组件间通信。

// eventBus.js
import Vue from 'vue';
export const EventBus = new Vue();

在发送组件中触发事件:

import { EventBus } from './eventBus.js';
EventBus.$emit('eventName', data);

在接收组件中监听事件:

import { EventBus } from './eventBus.js';
EventBus.$on('eventName', (data) => {
  console.log(data);
});

通过父组件作为桥梁

父组件通过props接收子组件A的数据,再通过v-on将数据传递给子组件B。
子组件A发送数据:

this.$emit('updateData', data);

父组件模板:

实现vue兄弟组件通信

<child-a @updateData="handleData"></child-a>
<child-b :data="sharedData"></child-b>

父组件逻辑:

data() {
  return { sharedData: null };
},
methods: {
  handleData(data) {
    this.sharedData = data;
  }
}

使用Vuex状态管理

适用于复杂场景,通过集中式存储管理组件间的共享状态。
定义Vuex store:

// store.js
import Vue from 'vue';
import Vuex from 'vuex';
Vue.use(Vuex);

export default new Vuex.Store({
  state: { sharedData: null },
  mutations: {
    updateData(state, payload) {
      state.sharedData = payload;
    }
  }
});

组件A提交变更:

实现vue兄弟组件通信

this.$store.commit('updateData', data);

组件B获取数据:

computed: {
  sharedData() {
    return this.$store.state.sharedData;
  }
}

使用$refs直接访问

通过父组件的$refs直接调用子组件方法(不推荐,破坏组件封装性)。
父组件模板:

<child-a ref="childA"></child-a>
<child-b ref="childB"></child-b>

父组件逻辑:

this.$refs.childB.methodName(this.$refs.childA.data);

标签: 组件兄弟
分享给朋友:

相关文章

vue实现倒计时组件

vue实现倒计时组件

实现基础倒计时功能 使用 Vue 的 data 和 methods 定义倒计时逻辑,通过 setInterval 更新剩余时间。 <template> <div>{…

vue实现广告组件

vue实现广告组件

Vue 实现广告组件的核心方法 数据驱动的广告内容渲染 通过 props 接收广告数据(如图片URL、跳转链接等),使用 v-bind 动态绑定属性。典型结构包含 <a> 标签嵌套 <…

vue实现tooltips组件

vue实现tooltips组件

Vue实现Tooltips组件的方法 基础实现:使用Vue指令 创建一个自定义指令v-tooltip,通过鼠标事件触发提示框的显示与隐藏。 Vue.directive('tooltip', {…

vue 实现组件刷新

vue 实现组件刷新

实现组件刷新的方法 在Vue中,组件刷新通常指重新渲染组件或重置组件状态。以下是几种常见的实现方式: 使用v-if控制渲染 通过v-if指令可以销毁并重新创建组件: <template>…

vue穿梭框组件实现

vue穿梭框组件实现

实现 Vue 穿梭框组件的基本思路 穿梭框(Transfer)组件通常用于在两个列表之间移动数据项。核心功能包括左侧列表、右侧列表、移动按钮(左移、右移、全选等)以及数据项的渲染与交互。 基础结构…

vue实现倒计时组件

vue实现倒计时组件

Vue 倒计时组件实现 核心思路 通过 setInterval 或 setTimeout 实现时间递减,结合 Vue 的响应式数据更新 UI。需注意组件销毁时清除定时器。 基础实现方案 模板部分…