Vue.js组件通信详解

admin | 2025-12-09 02:47

Vue.js组件通信详解

在Vue.js应用中,组件间的通信是构建复杂应用的关键。本文将详细介绍各种通信方式。

Props向下传递

父组件向子组件传递数据:

<!-- 父组件 -->
<template>
  <child-component :message="parentMessage" />
</template>

<script>
import ChildComponent from './ChildComponent.vue';

export default {
  components: {
    ChildComponent
  },
  data() {
    return {
      parentMessage: 'Hello from parent'
    }
  }
}
</script>

事件向上传递

子组件向父组件传递数据:

<!-- 子组件 -->
<template>
  <button @click="sendToParent">发送消息</button>
</template>

<script>
export default {
  methods: {
    sendToParent() {
      this.$emit('child-event', 'Hello from child');
    }
  }
}
</script>

<!-- 父组件接收 -->
<child-component @child-event="handleChildEvent" />

Provide/Inject

跨层级组件通信:

// 父组件
export default {
  provide() {
    return {
      theme: 'dark',
      user: this.currentUser
    }
  }
}

// 子组件
export default {
  inject: ['theme', 'user'],
  mounted() {
    console.log(this.theme); // 'dark'
  }
}

掌握组件通信是Vue.js开发的重要技能。

关于青悟栈

青悟栈是一个专注于技术分享的个人博客,致力于记录学习历程、分享开发经验。

在这里,你可以找到关于编程、技术架构、开发工具等方面的文章。

技术栈
Python
Django
JavaScript
HTML
CSS
MySQL
用户中心