组件自定义事件

文章介绍了在Vue中子组件如何向父组件传递数据,主要通过在父组件中定义事件监听器,然后在子组件中触发这个事件。方法包括通过props传递函数,以及使用$on,$emit,$off进行自定义事件的绑定、触发和解绑。此外,还提到了once修饰符用于只触发一次的事件,以及在组件上绑定原生DOM事件时使用native修饰符的注意事项。
摘要由CSDN通过智能技术生成
  1. 一种组件间通信的方式,适用于 自组件 ===> 父组件

  2. 使用场景:A 是父组件,B是子组件,B 想给 A 传数据,那么就要在 A 中 B 绑定自定义事件(事件的回调在 A 中

  3. 通过父组件给子组件传递函数类型的 props 实现:子给父传递数据

    父组件:

    `<School :getSchoolName="getSchoolName"></School>`
    

    子组件:

    export default{
    
            name:"School",
    
            props:['getSchoolName']
    
        }
  4. 绑定自定义事件:

    1. 第一种方式,在父组件中:

    2. <Demo @atguigu='test'/> 或 <Demo v-on:atguigu='test'/>

       

  5. 第二种方式,在父组件中:

    <Demo ref='demo'/>
    
    ........
    
    mounted(){
    
    this.$refs.xxx.$son('atguigu',this.test)
    
    }

    c. 若想让自定义事件只能被触发一次,可以使用 once 修饰符,或 $once 方法

  6. 触发自定义事件:this.$emit('atguigu',数据)

  7. 解绑自定义事件: this.$off('atguigu')

  8. 销毁 xxx 组件实例: 销毁当前 xxx 组件实例,销毁后 xxx 实例的自定义事件全都不奏效

  9. this.$destroy()

  10. 组件上也可以绑定原生 DOM 事件,需要使用 native 修饰符

  11. 注意:通过 this.$refs.xxx.$on('atguigu',回调)绑定自定义事件时,回调要么配置在 methods 中,要么用箭头函数。否则 this 指向会出问题!

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值