Vue 组件间通信方式:自定义事件

本文详细介绍了Vue组件间通信的第四种方法——自定义事件,包括两种使用方式:通过`ref`标识和使用`v-on/@`监听。通过实例分析了如何在父子组件间传递数据,并讨论了这种方式的适用场景。同时,提供了相关项目实战案例和补充阅读材料,帮助读者深入理解和应用。
摘要由CSDN通过智能技术生成
前言

前期分享的测试开发系列!Vue 组件间通信方式汇总,总有一款适合你( 5分钟教程-附项目实战案例 )中介绍了 3 种组件间的通信方法,分别是:

  • props
  • 全局事件总线
  • 消息订阅与发布

今天给大家分享第 4 种组件间的通信方法:自定义事件

适用于:子组件给父组件传递数据

使用方法

例如:Student.vue组件是School.vue组件的子组件, 子组件Student.vue想要将学生姓名传递给父组件School.vue

第1种方法:ref标识

School.vue组件内容如下

<template>
   <div>
       <h1>学生姓名是:{
    {
    studentName}}</h1>
        <!-- 通过父组件给子组件绑定一个自定义事件实现:子给父传递数据(1种写法:使用ref) -->
       <Student ref="student" @click.native="show"/>
   </div>
</template>
<script>
   import Student from "./components/Student"

   export default {
    
       name:'School',
       components:{
    Student},
       data(){
    
           return {
    
               studentName:''
           }
       },
       methods: {
    
           getStudentName(name,...params){
    
           //使用name形参接收Student组件中传递过来的实参name,...params用于接收剩余的参数
               this.studentName = name
           }
       },
       mounted() {
    
           //先在methods中准备好getStudentName方法
           this.$refs.student.$on('studentName', this.getStudentName) //绑定自定义事件,指定回调函数为getStudentName
   }
}
</script>

Student.vue组件内容如下

<template>
   <div>
       <button @click="sendStudentName">发送学生名给School组件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Wu_Candy

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

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

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

打赏作者

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

抵扣说明:

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

余额充值