当前位置:首页 > 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

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

vue实现通讯

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

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

相关文章

vue 实现关闭

vue 实现关闭

Vue 实现关闭功能的方法 在Vue中实现关闭功能通常涉及组件销毁、模态框隐藏或路由跳转等场景。以下是几种常见实现方式: 销毁当前组件 使用v-if或v-show控制组件显示/隐藏,适用于局部组件:…

vue实现文字

vue实现文字

Vue 中实现文字显示的方法 在 Vue 中实现文字显示可以通过多种方式,包括插值表达式、指令、组件等。以下是几种常见的实现方法: 插值表达式 使用双大括号 {{ }} 进行文本插值,这是 Vue…

js 实现vue

js 实现vue

实现 Vue 的核心功能 在 JavaScript 中实现 Vue 的核心功能需要模拟数据绑定、虚拟 DOM 和响应式系统。以下是一个简化版的实现思路: 响应式系统 通过 Object.define…

vue实现菜单定位

vue实现菜单定位

实现菜单定位的方法 在Vue中实现菜单定位功能,可以通过监听滚动事件或使用Intersection Observer API来判断当前显示的菜单项,并高亮对应的导航链接。以下是几种常见的实现方式:…

vue router实现分页

vue router实现分页

Vue Router 实现分页的方法 在 Vue.js 中,可以通过 Vue Router 实现分页功能,通常需要结合路由参数和动态路由匹配。以下是几种常见的实现方式: 使用查询参数实现分页 在路由…

vue 实现 input focus

vue 实现 input focus

实现 Input Focus 的方法 在 Vue 中实现 input 元素的聚焦可以通过以下几种方式完成。 使用 ref 和 $refs 通过 ref 属性标记 input 元素,然后在 Vue 实…