Vue基础系列(二十)-组件自定义事件的绑定以及基本使用(子给父传递数据)_解绑
Posted 勇敢*牛牛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue基础系列(二十)-组件自定义事件的绑定以及基本使用(子给父传递数据)_解绑相关的知识,希望对你有一定的参考价值。
【Vue】基础系列(二十)-组件自定义事件的绑定(子给父传递数据)
🌕写在前面
🍊博客主页 :勇敢link牛牛
🎉欢迎关注:🔎点赞👍收藏⭐️留言📝
🌟本文由 勇敢link牛牛 原创,CSDN首发!
📆首发时间:🌹2022年5月6日🌹
🆕最新更新时间:🎄2022年5月6日🎄
✉️愿你熬过万丈孤独,藏下星辰大海!
📠参考书籍:📚《Vue2》
这里写目录标题
props实现
<!-- 通过父组件给子组件传递函数类型的props实现自给父传递数据 -->
<School :revces="revces"></School>
<!-- 给组件的实例对象vc绑定事件 -->
<!-- 通过父组件给子组件绑定一个自定义事件 -->
<Student @huoqu="demo"></Student>
通父给子一个函数通道,在适当的时机返回一个数据,与props配置项配合使用。
返回学校名字
methods:
fun()
alert("奥利给");
this.revces(this.name);
,
,
自定义事件实现
另一种方式,由于v-on
,或@
在<student>
组件的实例对象身上vc绑定一个事件,日后如果有人触发了这个事件,那么这个demo函数就会被调用。给谁绑定的事件,就给谁去操作(触发这个事件)
fun()
alert("奥利给");
// 触发student组件实例身上的huoqu事件
this.$emit("huoqu", this.name);
,
- 相同点是:都需要在父组件里面配置好methods里的回调函数。
- 第二种方式,是给组件的实例对象绑定一个自定义事件,通过
this.$emit
“引爆”这个事件。
通过ref属性
还有一种方法: 通过ref属性获取组件的实例对象
<Studen ref="student"></Studen>
再通过组件的实例对象操作
this.$refs.student
通过生命周期钩子(挂载完毕来访问)
mounted()
this.$refs.student.$on("huoqu", this.demo);
,
通过这种方式,对这个传递绑定事件的可操作性和灵活性就会大大增加。
mounted()
setTimeout(() =>
this.$refs.student.$on("huoqu", this.demo);
, 30000);
,
如果只使用一次对事件的启动
那就
如果是这种方法的话:
this.$refs.student.$once("huoqu", this.demo);
或者
<Student @huoqu.once="demo"></Student>
与点击事件的api一致。
解绑事件
unfun()
// 解绑事件函数
this.$off('huoqu')
// 解绑多个事件
this.$off(["huoqu","demo"])
// 解绑所有的事件
this.$off()
如果销毁了当前的组件的实例,销毁后所有的VC实例的自定义事件完全不奏效this.$destroy()
以上是关于Vue基础系列(二十)-组件自定义事件的绑定以及基本使用(子给父传递数据)_解绑的主要内容,如果未能解决你的问题,请参考以下文章
Vue基础系列(二十一)——全局事件总线(GlobalEventBus)
vue-learning:28 - component - 组件事件的修饰符`.native / .sync`,以及组件属性`model`