首页 > 其他分享 >vue事件修饰符

vue事件修饰符

时间:2024-08-14 20:38:00浏览次数:7  
标签:触发 vue log 修饰符 点击 事件

我们用vue中的事件修饰符来做上一篇中event.preventDefault() 阻止事件的默认行为和event.stopPropagation() 阻止事件冒泡、传播事件。

<div id="app">
        <div @click="outer" id="outer">
            <div @click="middle" id="middle">
                <div @click="inner" id="inner">

                </div>
            </div>
        </div>
    </div>

<script>
        let vm = new Vue({
            el : "#app",
            data : {
                
            },
            methods: {
                 outer(){
                    console.log('outer点击事件触发了...');
                },
                middle(){
                    console.log('middle点击事件触发了...');
                },
                inner(){
                    console.log('inner点击事件触发了...');
                }
            }
        })
    </script>

当然我们也可以在method中阻止事件冒泡,如下:

                middle(){
                    console.log('middle点击事件触发了...');
                    event.stopPropagation();
                },

但是vue.js是鼓励尽量在函数里面写业务相关的代码,DOM操作的尽量少做。

这些可以作为.参数放入标签属性中,语法为:v-指令名:参数.修饰符="值",例如:

@click.stop="inner"   #在事件名后面添加stop时,vue解析的时候,会自动添加e.stopPropagation()
        <div @click="outer" id="outer">
            <div @click="middle" id="middle">
                <div @click.stop="inner" id="inner">

                </div>
            </div>
        </div>

事件流由冒泡变为捕获可以变成如下:

在事件后面添加.capture,vue解析的时候,会自动从事件冒泡变为事件捕获。

        <div @click.capture="outer" id="outer">
            <div @click.capture="middle" id="middle">
                <div @click.capture="inner" id="inner">

                </div>
            </div>
        </div>

 如果想阻止默认行为,比如说点击a标签的时候,不然其跳转,则可以使用prevent,vue解析的时候,会把prevent解析为preventDefault

<a href="http://www.baidu.com" @click.prevent="prev()">百度一下</a>  
加上@click.prevent后,就会不会跳转了

self修饰符:只有点击自己标签区域才会,触发事件,其他的标签是不会触发事件的

        <div @click="outer" id="outer">
            <div @click.self="middle" id="middle">
                <div @click="inner" id="inner">

                </div>
            </div>
        </div>

 

标签:触发,vue,log,修饰符,点击,事件
From: https://www.cnblogs.com/yansunda/p/18359743

相关文章

  • 基于SpringBoot+VUE的学生心理咨询评估系统(源码+文档+部署)
    主要内容:Java项目、Python项目、前端项目、PHP、ASP.NET、人工智能与大数据、单片机开发、物联网设计与开发设计、简历模板、学习资料、面试题库、技术互助、就业指导等业务范围:免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论......
  • 课程设计-基于Springboot+Vue的生鲜交易系统的设计与实现(源码+LW+包运行)
    源码获取:https://download.csdn.net/download/u011832806/89460525基于SpringBoot+Vue的生鲜交易系统开发语言:Java数据库:MySQL技术:SpringBoot+MyBatis+Vue.js工具:IDEA/Ecilpse、Navicat、Maven系统演示视频:链接:https://pan.baidu.com/s/1NzmQFwX8e6una-ykZ6KGww?pwd=wa......
  • 课程设计-基于Springboot+Vue的网上书城的设计与实现(源码+LW+包运行)
    源码获取:https://download.csdn.net/download/u011832806/89461644基于SpringBoot+Vue的网上书城开发语言:Java数据库:MySQL技术:SpringBoot+MyBatis+Vue.js工具:IDEA/Ecilpse、Navicat、Maven系统演示视频:链接:https://pan.baidu.com/s/1EWMhc80qzi_R__dAXMtKVA?pwd=t8pv......
  • vue3 antdv a-datepicker 修改datepicker 的panel宽度,初始弹出一些正常,但再次弹出,宽度
    1、展示页面的框架结构:2、然后,我们上二张图对比一下:图1-1需要的效果图:图1-2对比一下图1-1与图1-2,我们就会发现图1-1中的农历,换行显示了,第二张是有效的。3、我们修改样式,让其变成我们想要的样式:<stylelang="less"scoped>@width:425px;.lua-date-picker-cust......
  • 基于django+vue基于微信小程序的社区物资订购系统【开题报告+程序+论文】计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在城市化进程加速的今天,社区作为居民生活的基本单元,其内部物资供应与需求的高效匹配显得尤为重要。特别是在特殊时期,如疫情期间,社区物资供......
  • 基于django+vue基于微信小程序的母支组新农改系统【开题报告+程序+论文】计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着农村电商的蓬勃发展,如何有效整合农村资源、促进农产品上行成为乡村振兴的重要议题。传统的农村市场存在着信息不对称、销售渠道有限等......
  • 基于django+vue基于微信小程序的垃圾分类系统演示录像22023【开题报告+程序+论文】计
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在环境保护意识日益增强的今天,垃圾分类作为促进资源循环利用、减少环境污染的关键举措,受到了社会各界的广泛关注。然而,垃圾分类知识的普及......
  • 基于django+vue基于微信小程序的垃圾分类系统演示录像12023【开题报告+程序+论文】计
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着城市化进程的加速,生活垃圾产量急剧增加,垃圾分类已成为城市管理和环境保护的重要议题。然而,传统的垃圾分类方式存在效率低、准确性差、......
  • 原生js的事件流
    原来js中的事件:event.preventDefault() 阻止事件的默认行为event.stopPropagation() 阻止事件冒泡、传播 事件流的定义:浏览器对于事件触发的执行流程 有下面三个div,他们是嵌套关系。如果每个div都触发了点击事件,那么是从内向外触发还是从外向内触发呢?<div......
  • Vue3+Vite项目从零搭建+安装依赖+配置按需导入
    环境准备Vscode/HBuilder等任何一种前端开发工具node.js&npm本地开发环境源代码管理:Git技术栈项目构建创建项目npmcreatevite依次运行最后三行出现,成功启动项目在浏览器输入http://localhost:5173/可以显示页面src别名的配置在开发项目的时候文件与文件......