当前位置:首页 > 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接收事件:

vue实现通讯

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

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

vue实现通讯

祖先组件:

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 实现人脸识别比对的方法 使用现成的人脸识别 API 通过调用第三方人脸识别 API(如 Face++、百度 AI、腾讯云等)实现比对功能。注册开发者账号获取 API Key 和 Secret,…

vue实现付款

vue实现付款

Vue 实现付款功能 在 Vue 中实现付款功能通常需要集成第三方支付网关(如支付宝、微信支付、Stripe 等)。以下是常见的实现方法: 集成支付宝/微信支付 安装必要的依赖(如 axios 用于…

vue实现点击

vue实现点击

实现点击事件的基本方法 在Vue中实现点击事件可以通过v-on指令或@简写方式绑定。以下是常见的点击事件绑定方法: <template> <button v-on:click=…

vue实现picker

vue实现picker

Vue 实现 Picker 组件的方法 在 Vue 中实现 Picker 组件可以通过多种方式完成,以下是几种常见的实现方法: 使用原生 HTML 和 CSS 实现 通过 Vue 的模板和样式绑定,…

vue实现上传

vue实现上传

Vue 文件上传实现方法 使用 Vue 实现文件上传可以通过原生 HTML5 的 <input type="file"> 元素结合 Vue 的事件处理和数据绑定来实现。 基础实现步骤…

vue 实现音乐

vue 实现音乐

Vue 实现音乐播放功能 在 Vue 中实现音乐播放功能,可以通过 HTML5 的 <audio> 元素或第三方库如 howler.js 来实现。以下是两种方法的详细步骤: 使用 HTM…