Vue学习笔记2 -- 组件自定义事件

18 篇文章 0 订阅

组件自定义事件

这是一种组件间通信的方式,适用于:子组件===》父组件

一. 给组件绑定自定义事件

1.第一种绑定方法

<Student v-on:myevent="demo"/>
<Student @:myevent="demo"/>
  • <Student> 是Vue当中的一个组件
  • 给Student组件的实例对象(vc)绑定一个myevent事件,如果myevent事件被触发,将会调用demo()函数
  • 你给谁绑定的事件,就找谁触发该事件
  • 触发Student组件实例身上的myevent事件,可以传递参数给父组件中在demo函数
# Student组件
this.$emit('myevent',this.name)

2. 第二种绑定方法

// ref 指向组件实例
<Student ref="student"/>
  • ref 被用来给元素或子组件注册引用信息。引用信息将会注册在父组件的 $refs 对象上。如果在普通的 DOM 元素上使用,引用指向的就是 DOM 元素;如果用在子组件上,引用就指向组件实例
//当组件加载完成后,调用生命周期函数mounted()
mounted() {
     //绑定自定义事件
	this.$refs.student.$on('myevent',this.getStudentName)
	 //绑定自定义事件(一次性)
	this.$refs.student.$once('myevent',this.getStudentName)
},

二、给组件解绑自定义事件

unbind(){
	this.$off('myevent') //解绑一个自定义事件
	// this.$off(['myevent1','myevent2']) //解绑多个自定义事件,参数是一个数组
	// this.$off() //解绑所有的自定义事件
},

销毁当前组件的实例,所有的自定义事件全都不奏效

death(){
   this.$destroy() //销毁了当前Student组件的实例,销毁后所有Student实例的自定义事件全都不奏效。
}

组件绑定的事件默认是自定义事件

// 系统把下面的click事件看成是自定义事件,需要组件触发
<Student ref="student" @click="show"/>
//系统把下面的click事件看成是原生DOM事件
<Student ref="student" @click.native="show"/>

组件内只能有一个根元素,否则会报错

  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值