当前位置:首页 > 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 的实现方案: 文件上传组件 使用 element-ui 或 ant-design-…

vue实现多级弹窗

vue实现多级弹窗

Vue 多级弹窗实现方法 方法一:使用动态组件与递归组件 在 Vue 中可以通过动态组件配合递归组件实现多级弹窗。定义一个基础弹窗组件,通过递归调用自身实现层级嵌套。 基础弹窗组件模板示例:…

vue实现选择季度

vue实现选择季度

Vue 实现选择季度的几种方法 使用下拉选择框(Select) 在 Vue 中可以通过 v-model 绑定一个下拉选择框来实现季度选择。数据可以预先定义为一个包含季度选项的数组。 <…

vue前端实现登录

vue前端实现登录

实现登录功能的基本流程 使用Vue实现登录功能需要结合前端框架和后端API交互。以下是一个典型的实现方案: 安装必要依赖 确保项目已安装axios用于HTTP请求: npm install a…

vue点击实现排序

vue点击实现排序

实现点击排序的方法 在Vue中实现点击排序功能,可以通过以下几种方式完成: 使用计算属性结合排序方法 定义一个响应式数据存储排序状态,通过计算属性动态返回排序后的数组。点击事件切换排序状态。…

vue怎么实现动画

vue怎么实现动画

Vue 动画实现方法 Vue 提供了多种方式实现动画效果,包括内置过渡系统、第三方库集成以及 CSS 动画。以下是常见实现方法: 使用 Vue 过渡系统 通过 <transition>…