vue3中子向父传数据

父组件

首先,我们创建一个父组件,名为 ParentComponent.vue:

复制代码
<template>
  <div>
    <h1>父组件</h1>
    <p>从子组件接收到的数据:{{ receivedData }}</p>
    <ChildComponent @sendData="updateData" />
  </div>
</template>

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

const receivedData = ref('');

function updateData(data) {
  receivedData.value = data;
}
</script>

<style scoped>
/* 可选的样式部分 */
</style>

代码解释

1,在 <template> 部分,我们展示父组件的数据 receivedData,并通过自定义事件 sendData 来接收子组件传递的数据。

2,在 <script setup> 部分,我们引入了Vue3的 ref 来创建响应式变量 receivedData。

3,updateData 方法用于更新接收到的数据。

4,我们通过引入并使用子组件 ChildComponent,同时监听其 sendData 事件并调用 updateData 方法。

子组件

接下来,我们创建子组件,名为 ChildComponent.vue:

复制代码
<template>
  <div>
    <h2>子组件</h2>
    <input v-model="inputData" placeholder="请输入数据">
    <button @click="sendDataToParent">发送数据到父组件</button>
  </div>
</template>

<script setup>
import { ref, defineEmits } from 'vue';

const inputData = ref('');

const emit = defineEmits(['sendData']);

function sendDataToParent() {
  emit('sendData', inputData.value);
}
</script>

<style scoped>
/* 可选的样式部分 */
</style>

代码解释

1,在 <template> 部分,我们创建了一个输入框和一个按钮。

2,在 <script setup> 部分,使用 ref 创建了响应式变量 inputData,用于存储用户输入的数据。

3,通过 defineEmits 定义了 sendData 事件。

4,sendDataToParent 方法会通过 emit 函数将 inputData 变量的值发送给父组件。

相关推荐
paopaokaka_luck3 小时前
社区服务平台(加权协同过滤推荐、Jieba中文词频分析、WebSocket实时聊天、求助处理闭环、 活动积分闭环、ECharts多维分析)
java·前端·spring boot·mysql·echarts·mybatis
墨林陌3 小时前
翻完 DeepSeek 的 GitHub 仓库,我发现 V5 的发布路已经修好了
前端
Antruly3 小时前
uvscope:Web 调试界的瑞士军刀
前端
计算机魔术师3 小时前
Anthropic S-1 披露:半年前发布的模型,已贡献不了多少收入了
前端
qq_340040883 小时前
idea2021版,vue项目的package.json不展示scripts的绿色箭头
javascript·vue.js·json
qq_364682153 小时前
录音APP怎么切换语言?多语言版本如何使用
java·服务器·前端
2601_968900774 小时前
玻璃深加工的工艺窗口:4 道工序的温度与时间参数边界
android·java·javascript
志尊宝4 小时前
AI原生前端开发(037):AI辅助的Vue 3开发最佳实践
前端·vue.js·ai-native
中科三方4 小时前
AI时代新攻击面:悬空DNS记录正在成为黑客的低成本入侵入口
服务器·前端·人工智能
程序员大阳4 小时前
副队长JavaScript教程(53)-DOM操作元素的属性
javascript·dom·属性·setattribute·getattribuite