当前位置:首页 > VUE

使用vue实例实现通信

2026-01-20 17:41:15VUE

Vue 实例通信方法

父子组件通信

使用 props 传递数据给子组件,子组件通过 $emit 触发事件传递数据给父组件。

父组件:

<template>
  <ChildComponent :message="parentMessage" @update="handleUpdate" />
</template>

<script>
export default {
  data() {
    return {
      parentMessage: 'Hello from parent'
    }
  },
  methods: {
    handleUpdate(newMessage) {
      this.parentMessage = newMessage
    }
  }
}
</script>

子组件:

<template>
  <button @click="sendMessage">Send Message</button>
</template>

<script>
export default {
  props: ['message'],
  methods: {
    sendMessage() {
      this.$emit('update', 'New message from child')
    }
  }
}
</script>

兄弟组件通信

通过共享的父组件作为中介,或者使用事件总线。

事件总线方法:

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

组件A:

import { EventBus } from './event-bus.js'
EventBus.$emit('message', 'Hello from A')

组件B:

import { EventBus } from './event-bus.js'
EventBus.$on('message', (msg) => {
  console.log(msg)
})

跨层级组件通信

使用 provide/inject 实现祖先组件向后代组件传递数据。

祖先组件:

export default {
  provide() {
    return {
      sharedData: this.sharedData
    }
  },
  data() {
    return {
      sharedData: 'Shared information'
    }
  }
}

后代组件:

export default {
  inject: ['sharedData'],
  created() {
    console.log(this.sharedData)
  }
}

Vuex 状态管理

对于复杂应用,使用 Vuex 集中管理状态。

store.js:

import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    count: 0
  },
  mutations: {
    increment(state) {
      state.count++
    }
  }
})

组件中使用:

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

$refs 直接访问

通过 ref 属性直接访问组件实例或DOM元素。

<template>
  <ChildComponent ref="child" />
  <button @click="callChildMethod">Call Child Method</button>
</template>

<script>
export default {
  methods: {
    callChildMethod() {
      this.$refs.child.childMethod()
    }
  }
}
</script>

使用vue实例实现通信

标签: 实例通信
分享给朋友:

相关文章

vue实现串口通信

vue实现串口通信

Vue 实现串口通信的方法 在 Vue 项目中实现串口通信,通常需要借助浏览器提供的 Web Serial API 或第三方库。以下是几种常见的实现方式: 使用 Web Serial API We…

vue实现im通信

vue实现im通信

Vue 实现 IM 通信 使用 WebSocket 实现实时通信 WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议,适合实现 IM 通信。Vue 中可以结合 websocket 或…

vue实现导出 实例

vue实现导出 实例

Vue实现导出功能的方法 在Vue中实现导出功能通常涉及将数据导出为Excel、CSV或其他格式文件。以下是几种常见的实现方式: 使用xlsx库导出Excel 安装xlsx库: npm insta…

react如何通信

react如何通信

React 组件通信方式 React 组件间的通信方式多样,具体选择取决于组件关系和场景需求。以下是常见方法: 父子组件通信 父组件通过 props 向子组件传递数据,子组件通过回调函数通知父…

vue实现组件通信

vue实现组件通信

Vue 组件通信方法 Vue 提供了多种方式实现组件间的通信,适用于不同场景。以下是常见的方法: Props 和 Events 父组件通过 props 向子组件传递数据,子组件通过 $emit…

vue实现长通信

vue实现长通信

Vue 实现长连接的几种方法 在 Vue 中实现长连接通信通常涉及 WebSocket、Server-Sent Events (SSE) 或轮询等技术。以下是几种常见的实现方式: WebSocke…