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组件绑定自定义事件

vue-learning:28 - component - 组件事件的修饰符`.native / .sync`,以及组件属性`model`

自定义 vue 组件的模糊事件

Vue 快速入门系列Vue数据实现本地存储自定义事件绑定全局事件总线$nextTick的使用

vue3自定义组件使用v-model实现双向数据绑定