当前位置: 首页 > article >正文

组件自定义事件

绑定

组件自定义事件跟子传递很像

 相同的是无论你使用的是props或者自定义事件,都是要使用到回调函数

子传父

 需要亲自是收一下,然后调用一下

 而自定义事件是没有给子组件传东西,只是这个当做事件的回调而已

 对比一下student并没有数据来接收,在这里你只要注意不要把事件名写错就可以了

当然,可以通过ref方式实现自定义事件的绑定

 这样能实现同样的效果,你在组件上用了ref,那么你就能通过this.$refs拿到它的实例对象,这种方法更灵活

如果你只想执行一次,可以在后面.once

如果你传的参数很多,你可以通过使用1.展开运算符...

它会把第一个参数拿出当,name用,然后其他的是保存为一个数组

2.在传的时候直接传一个参数进去就可以了 

解绑

你给谁绑定了自定义事件,那么你就去找他去解绑

这种this.$off只适合解绑一个自定义事件 

解绑多个要写在一个数组中

还有一种极端的写法:this.$off()解绑所有的自定义事件

这里要注意的是:销毁了当前Student组件的实例,销毁后所有Student实例的自定义事件全都不奏效。 

总结

如果使用@click,它只会把它当做自定义事件,除非使用.native,才会把它当做默认行为 

总结:

* 一种组件间通信的方式,适用于:`<strong style="color:red">`子组件 ===> 父组件`</strong>`
* 使用场景:A是父组件,B是子组件,B想给A传数据,那么就要在A中给B绑定自定义事件(`<span style="color:red">`事件的回调在A中)。
* 绑定自定义事件:
  1. 第一种方式,在父组件中:``<Demo @atguigu="test"/>``  或 ``<Demo v-on:atguigu="test"/>``
  2. 第二种方式,在父组件中:

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

3. 若想让自定义事件只能触发一次,可以使用 ``once``修饰符,或 ``$once``方法。
* 触发自定义事件:``this.$emit('atguigu',数据)``
* 解绑自定义事件 ``this.$off('atguigu')``
* 组件上也可以绑定原生DOM事件,需要使用 ``native``修饰符。
* 注意:通过 ``this.$refs.xxx.$on('atguigu',回调)``绑定自定义事件时,回调`<span style="color:red">`要么配置在methods中,`<span style="color:red">`要么用箭头函数,否则this指向会出问题!

todoList案例——自定义事件

将自定义属性改为自定义事件

 

 


http://www.kler.cn/a/4650.html

相关文章:

  • Oracle Dataguard(主库为双节点集群)配置详解(5):将主库复制到备库并启动同步
  • bochs+gdb调试linux0.11环境搭建
  • 算法妙妙屋-------2..回溯的奇妙律动
  • ElasticSearch在Windows环境搭建测试
  • ubuntu20下编译linux1.0 (part1)
  • 【1】Word:邀请函
  • 历史回顾:纽约地铁现在还用?OS/2历史回顾
  • 华为OD机试题,用 Java 解【内存池】问题 | 含解题说明
  • 实验二 数据查询
  • 2023 年最佳 C++ IDE
  • 前端-微前端
  • 嵌入式课程实现Linux操作系统LVGL移植操作
  • 物联网的边缘计算利器:Thingboard Edge
  • 一位年薪35W的测试被开除,回怼的一番话,令人沉思
  • 【机器学习】逻辑回归(非常详细)
  • Python办公自动化之处理文件与文件夹
  • 高效率工作方法
  • 高斯混合模型 GMM 的详细解释
  • 华为OD机试题,用 Java 解【通信误码】问题 | 含解题说明
  • 史上最全零拷贝总结
  • 银行数字化转型导师坚鹏:银行行长如何进行数字化转型
  • Linux chown 命令
  • 基于springboot学生信息管理系统
  • 系统分析师每日练习错题知识点2
  • 面试时被问:为什么裁员只裁你,不裁别人,该怎么回答?
  • 【华为OD机试 2023最新 】 农场施肥(C++ 100%)