vue3中的子组件向父组件通信和父组件向子组件通信

一、父组件向子组件通信:Props

父组件通过 ​​属性绑定​ ​ 传递数据,子组件通过 defineProps接收数据。

​特点​​:单向数据流(子组件不可直接修改 Props)。

代码示例:

​父组件 (ParentComponent.vue)​​:

java 复制代码
<template>  
  <ChildComponent :message="parentMessage" :user="userData" />  
</template>  

<script setup>  
import { ref } from 'vue';  
import ChildComponent from './ChildComponent.vue';  

const parentMessage = ref('Hello from Parent');  
const userData = ref({ name: 'Alice', age: 25 });  
</script>

​子组件 (ChildComponent.vue)​​:

java 复制代码
<template>  
  <div>  
    <p>{{ message }}</p>  <!-- 输出:Hello from Parent -->  
    <p>{{ user.name }} ({{ user.age }})</p>  <!-- 输出:Alice (25) -->  
  </div>  
</template>  

<script setup>  
const props = defineProps({  
  message: { type: String, required: true },  
  user: { type: Object, default: () => ({}) }  
});  
</script>

​关键点​​:

  • Props 需在子组件中显式声明类型和验证规则。

  • 复杂数据(如 Object/Array)应使用 refreactive保持响应性。


📩 二、子组件向父组件通信:自定义事件

子组件通过 defineEmits声明事件,用 emit()触发事件;父组件通过 @事件名监听并处理数据。

代码示例:

​子组件 (ChildComponent.vue)​​:

java 复制代码
<template>  
  <button @click="sendData">提交数据</button>  
</template>  

<script setup>  
const emit = defineEmits(['data-submitted']);  

function sendData() {  
  emit('data-submitted', { id: 1, value: '子组件数据' });  
}  
</script>

​父组件 (ParentComponent.vue)​​:

java 复制代码
<template>  
  <ChildComponent @data-submitted="handleData" />  
</template>  

<script setup>  
function handleData(payload) {  
  console.log(payload); // { id: 1, value: '子组件数据' }  
}  
</script>
相关推荐
lbh38 分钟前
当我开始像写代码一样和AI对话,一切都变了
前端·openai·ai编程
We་ct1 小时前
LeetCode 918. 环形子数组的最大和:两种解法详解
前端·数据结构·算法·leetcode·typescript·动态规划·取反
qq_406176142 小时前
深入浅出 Pinia:Vue3 时代的状态管理新选择
javascript·vue.js·ecmascript
wefly20172 小时前
m3u8live.cn 在线M3U8播放器,免安装高效验流排错
前端·后端·python·音视频·前端开发工具
C澒2 小时前
微前端容器标准化 —— 公共能力篇:通用打印
前端·架构
德育处主任Pro3 小时前
前端元素转图片,dom-to-image-more入门教程
前端·javascript·vue.js
木斯佳3 小时前
前端八股文面经大全:小红书前端一二面OC(下)·(2026-03-17)·面经深度解析
前端·vue3·proxy·八股·响应式
陈天伟教授3 小时前
人工智能应用- 预测新冠病毒传染性:04. 中国:强力措施遏制疫情
前端·人工智能·安全·xss·csrf
叫我一声阿雷吧3 小时前
JS 入门通关手册(23):JS 异步编程:回调函数与异步本质
javascript·es6·前端面试·回调函数·回调地狱·js异步编程·异步本质
zayzy3 小时前
前端八股总结
开发语言·前端·javascript