广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Vue自定义组件使用事件修饰符的踩坑记录
  • 944
分享到

Vue自定义组件使用事件修饰符的踩坑记录

2024-04-02 19:04:59 944人浏览 安东尼
摘要

前言 今天在使用自写组件时,突然遇到久违的冒泡事件,就想着使用Vue自带的事件修饰符(.stop),本以为可以就此解决冒泡,却遇到这个问题。 脑中一片问号????这是什么鬼,我是

前言

今天在使用自写组件时,突然遇到久违的冒泡事件,就想着使用Vue自带的事件修饰符(.stop),本以为可以就此解决冒泡,却遇到这个问题。

在这里插入图片描述

脑中一片问号????这是什么鬼,我是按照Vue文档写的啊(吐血)

于是,我开始踏上了解决错误的路程

程序员常规操作:

打开浏览器–百度/谷歌搜一搜,发现搜出来的东西不少,没一个是能解决我的问题的答案,没办法Vue文档走起!!!!
看了至少几十遍Vue文档的我,自以为没有看漏什么东西,确信Vue文档也没有解决这种问题的答案,苦苦寻找,来到这里

在这里插入图片描述

嗯?这个event.stopPropagation()???

顿时灵光一现!!!!

在这里插入图片描述

既然是event.stopPropagation()可以触发,那我把event传递过去,问题是不是就可以解决了。说干就干!!

开始素人 代码修改

在这里插入图片描述

使用自定义组件如下:

在这里插入图片描述

来看看控制台输出

在这里插入图片描述

可以了!!!!!可是,为什么会输出两次呢????本想着解决就行了,但是,奇怪的好奇心出来了。

开始踏上寻找触发两次BUG的路程

尝试加上.once修饰符,发现无效,多点几下,发现都是触发两次

在这里插入图片描述

奇奇怪怪的!这是什么鬼啊!!!!

继续尝试使用Vue事件修饰符.once,出现了如下输出

在这里插入图片描述

确实是可以只触发一次了,可是第一次为什么会蹦出来两次打印啊!!!(晕)

问题没有完全解决,继续找。。。。

查看打印时间戳(timeStamp),都是同一时间触发,这可不好弄啊

继续使用浏览器搜索

灵感来了,用setTimeout强制只能触发一次怎么样?

开始代码改造

在这里插入图片描述

好了,看看效果

在这里插入图片描述

成功!!!!一路坎坷的解决了!!!

总结

到此这篇关于Vue自定义组件使用事件修饰符的文章就介绍到这了,更多相关Vue使用事件修饰符内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Vue自定义组件使用事件修饰符的踩坑记录

本文链接: https://www.lsjlt.com/news/126608.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作