深度理解Vue组件的子组件向父组件传递数据的通信方式,全面详细,看这一篇就够了,推荐收藏

本文详细介绍了Vue中子组件如何向父组件传递数据的三种常见方法:1) 使用props传递函数,子组件调用该函数传递数据;2) 使用v-on或@绑定自定义事件,子组件触发事件传递数据;3) 利用ref直接访问子组件实例,订阅子组件事件。每种方法的特点和适用场景也进行了对比,展示了Vue组件间通信的灵活性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

Vue子组件向父组件传递数据的通信方式有很多,我这里列举了三种。

方法一:使用props实现

方法二:使用v-on或者@,给组件Student的实例对象绑定一个自定义事件实现

方法三:使用ref,给组件Student的实例对象绑定一个自定义事件实现


Vue子组件向父组件传递数据的通信方式有很多,我这里列举了三种。

方法一:使用props实现

父组件向子组件通过props传递一个函数,子组件触发事件时,调用这个函数,把自己的数据传给父组件,实质是进行了父子之间的相互通信

案例:App是父组件,下面有一个子组件School,实现功能如下:点击School组件的按钮,把自己的数据:学校名称name,传给父组件App,父组件把数据在控制台打印出来

第一步:在父组件App.vue的methods中,配置一个函数getSchoolName(),形参是name,将传进去的子组件的学校名字打印在控制台上

<template>
  <div class="app">
    <h1>{
  { msg }}</h1>
    <School :getSchoolName="getSchoolName"></School>
    <Student></Student>
  </div>
</template>

<script>
// 引入组件
import School from "./components/School";
import Student from "./components/Student";
export default {
  name: "App",
  components: {
    School,
    Student,
  },
  data() {
    return {
      msg: "我是父组件App",
    };
  },
  methods: {
    getSchoolName(name){
      console.log("App收到了School的name",name)
    }
  },
};
</script>

<style >
.app {
  background-color: lightblue;
  padding: 5px;
}
</style>

代码中的核心: 

 

第二步:将父组件App.vue的函数getSchoolName,通过props,传给子组件School.vue

第三步:子组件中触发单击事件,在事件响应时,获取对应的name数据&#x

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

唯一的阿金

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值