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 变量的值发送给父组件。

相关推荐
2501_948122631 分钟前
React Native for OpenHarmony 实战:Steam 资讯 App 意见反馈实现
javascript·react native·react.js·游戏·ecmascript·harmonyos
IT_陈寒3 分钟前
Vue3性能优化实战:5个被低估的API让我减少了40%的代码量
前端·人工智能·后端
是罐装可乐4 分钟前
前端架构知识体系:深入理解 sessionStorage、opener 与浏览器会话模型
开发语言·前端·javascript·promise·语法糖
2501_944521005 分钟前
rn_for_openharmony商城项目app实战-账号安全实现
javascript·数据库·安全·react native·react.js·ecmascript
s19134838482d5 分钟前
web前端-设计表格
前端
Amumu121386 分钟前
React路由(三)
javascript·react.js·ecmascript
vx_bisheyuange7 分钟前
基于SpringBoot的旅游管理系统
前端·javascript·vue.js·spring boot·毕业设计
鹏程十八少9 分钟前
2.Android 3分钟跑通Shadow官方插件化Demo(Maven版):宿主/管理器/插件三工程(实战)
android·前端·面试
木易 士心13 分钟前
加密与编码算法全解:从原理到精通(Java & JS 实战版)
java·javascript·算法
C_心欲无痕15 分钟前
为什么前端项目部署需要 nginx 或 Apache?
前端·nginx·apache