当前位置:首页 > VUE

vue实现通讯

2026-01-07 23:43:16VUE

Vue 组件通讯方法

父子组件通讯

父组件向子组件传递数据通过 props,子组件向父组件传递数据通过 $emit 事件。

父组件模板:

<child-component :message="parentMessage" @update="handleUpdate"></child-component>

子组件代码:

props: ['message'],
methods: {
  sendToParent() {
    this.$emit('update', newValue)
  }
}

兄弟组件通讯

通过共同的父组件作为中介,或者使用 Event Bus。

创建 Event Bus:

// event-bus.js
import Vue from 'vue'
export const EventBus = new Vue()

组件A发送事件:

EventBus.$emit('event-name', data)

组件B接收事件:

EventBus.$on('event-name', data => {
  // 处理数据
})

Vuex 状态管理

适合大型应用中的全局状态共享。

store 配置示例:

const store = new Vuex.Store({
  state: {
    count: 0
  },
  mutations: {
    increment(state) {
      state.count++
    }
  }
})

组件中使用:

this.$store.commit('increment')
console.log(this.$store.state.count)

provide/inject

适合祖先组件向后代组件跨层级传递数据。

祖先组件:

provide() {
  return {
    theme: 'dark'
  }
}

后代组件:

inject: ['theme']

$attrs/$listeners

处理未声明 props 和事件的传递。

父组件:

<child-component v-bind="$attrs" v-on="$listeners"></child-component>

$parent/$children

直接访问父/子组件实例(不推荐常用)。

this.$parent.someMethod()
this.$children[0].someData

vue实现通讯

标签: 通讯vue
分享给朋友:

相关文章

vue实现聊天功能

vue实现聊天功能

Vue 实现聊天功能的基本步骤 安装必要依赖 使用 Vue CLI 创建项目后,安装 socket.io-client 或 vue-socket.io 实现实时通信,或基于 HTTP 的 axios…

vue实现放大效果

vue实现放大效果

使用 CSS transform 实现放大效果 在 Vue 中实现放大效果可以通过 CSS 的 transform: scale() 属性。这种方法简单高效,适合大多数交互场景。 定义一个 CSS…

vue登录逻辑的实现

vue登录逻辑的实现

Vue 登录逻辑实现 前端实现 创建登录组件 在 Vue 项目中创建一个登录组件,通常命名为 Login.vue。该组件包含表单元素,如用户名和密码输入框,以及提交按钮。 <template…

vue实现级联

vue实现级联

Vue 实现级联选择器的方法 级联选择器(Cascader)是常见的表单组件,用于处理多层级联动数据选择(如省市区选择)。以下是几种实现方式: 基于 Element UI 的 el-cascade…

vue实现jqueryui

vue实现jqueryui

Vue 实现 jQuery UI 功能 在 Vue 项目中实现类似 jQuery UI 的功能,可以通过原生 Vue 组件或第三方库来实现。以下是几种常见 jQuery UI 功能的 Vue 替代方案…

vue实现节流

vue实现节流

vue实现节流的方法 在Vue中实现节流(throttle)功能,通常用于限制高频事件的触发频率,例如滚动、输入或按钮点击。以下是几种常见的实现方式: 使用Lodash的throttle函数 安装…