VUE3基础学习之click事件详解

 更新时间:2022年01月06日 11:32:49   作者:追风人聊Java  
由于vue是一个双向数据绑定的框架,它的点击事件与以前常用的还是有很大的差别的,下面这篇文章主要给大家介绍了关于VUE3基础学习之click事件的相关资料,需要的朋友可以参考下

1. 概述

老话说的好:努力帮别人解决难题,你的难题也就不难解决了。

言归正传,今天我们来聊聊 VUE3 的 click 事件的相关知识。

2. click 事件

2.1 实现数字递减

<body>
    <div id="myDiv"></div>
</body>
<script>
    const app = Vue.createApp({     // 创建一个vue应用实例
        data() {
            return {
                num : 5
            }
        },
        methods : {
            decr() {
                if(this.num <= 0) {
                    alert("库存为0,无法购买")
                    return;
                }
                this.num-- ;
            },
        },
        template : `
            <div>
                商品库存剩余 {{num}} 件
                <button @click="decr">购买</button><br>
            </div>  
        `
    });

    const vm = app.mount('#myDiv');  // 绑定id为 myDiv 的元素

该例中,每点一次按钮,商品库存都会减 1

2.2 事件方法中获取 event 对象

decr(event) {
                console.info(event);
                console.info(event.target);
                if(this.num <= 0) {
                    alert("库存为0,无法购买")
                    return;
                }
                this.num-- ;
            },

方法中可以获取 event 对象,从中可以获取一些事件信息

2.3 事件方法中增加参数

methods : {
            decr(n) {
                if(this.num < 2) {
                    alert("库存不足,无法购买")
                    return;
                }
                this.num -= n;
            },
        },
        template : `
            <div>
                商品库存剩余 {{num}} 件
                <button @click="decr(2)">购买2件</button><br>
            </div>  
        `

事件方法 decr 中增加了参数 n,依据参数进行计算

2.4 有参事件方法中获取 event 对象

methods : {
            decr(n, event) {
                console.info(event);
                console.info(event.target);
                if(this.num < 2) {
                    alert("库存不足,无法购买")
                    return;
                }
                this.num -= n;
            },
        },
        template : `
            <div>
                商品库存剩余 {{num}} 件
                <button @click="decr(2, $event)">购买2件</button><br>
            </div>  
        `

2.5 点击按钮执行多个方法

methods : {
            f1() {
                alert("f1")
            },
            f2() {
                alert("f2")
            },
        },
        template : `
            <div>
                <button @click="f1(), f2()">执行多个方法</button><br>
            </div>  
        `

2.6 事件冒泡

methods : {
            clickDiv() {
                alert("div");
            },
            clickButton() {
                alert("button");
            }
        },
        template : `
            <div @click="clickDiv">
                <button @click="clickButton">事件冒泡</button><br>
            </div>  
        `

点击按钮,会先执行 button 上的 click 事件,然后执行 div 上的 click 事件

2.7 阻止冒泡

        template : `
            <div @click="clickDiv">
                <button @click.stop="clickButton">阻止事件冒泡</button><br>
            </div>  
        `

如果我们希望点击按钮时只执行按钮的事件,可以在按钮上使用 @click.stop 的写法阻止事件冒泡。

2.8 事件捕获

        template : `
            <div @click.capture="clickDiv">
                <button @click="clickButton">事件捕获</button><br>
            </div>  
        `

如果希望先执行 div 事件,再执行 button 的事件,可以在 div 上使用 @click.capture 的写法,让事件由外向内执行

2.9 事件只执行一次

        template : `
            <div @click.once="clickDiv">
                <button @click="clickButton">事件</button><br>
            </div>  
        `

在 div 上使用 @click.once ,这样 div 的事件,只会被执行一次

3. 综述

今天聊了一下 VUE3 的 click 事件,希望可以对大家的工作有所帮助

到此这篇关于VUE3基础学习之click事件的文章就介绍到这了,更多相关VUE3之click事件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 深入理解Vue 单向数据流的原理

    深入理解Vue 单向数据流的原理

    这篇文章主要介绍了深入理解Vue 单向数据流的原理,详细的介绍了Vue 单向数据流的原理和使用,具有一定的参考价值,有兴趣的可以了解一下
    2017-11-11
  • Vue3组件库框架搭建example环境的详细教程

    Vue3组件库框架搭建example环境的详细教程

    这篇文章主要介绍了Vue3组件库框架搭建example环境的详细教程,本文便搭建 example 开发环境和打包构建,并在example中使用组件库,需要的朋友可以参考下
    2022-11-11
  • 前端vue-cli项目中使用img图片和background背景图的几种方法

    前端vue-cli项目中使用img图片和background背景图的几种方法

    这篇文章主要介绍了前端vue-cli项目中使用img图片和background背景图的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • vue使用echarts图表的详细方法

    vue使用echarts图表的详细方法

    这篇文章主要为大家详细介绍了vue使用echarts图表的详细方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-10-10
  • vue绑定的点击事件阻止冒泡的实例

    vue绑定的点击事件阻止冒泡的实例

    下面小编就为大家分享一篇vue绑定的点击事件阻止冒泡的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-02-02
  • Vue3使用customRef封装防抖函数的方法详解

    Vue3使用customRef封装防抖函数的方法详解

    防抖函数的作用是高频率触发的事件,在指定的单位时间内,只响应最后一次,如果在指定的时间内再次触发,则重新计算时间,本文将给大家详细的介绍一下Vue3使用customRef封装防抖函数的方法,需要的朋友可以参考下
    2023-09-09
  • 使用webpack手动搭建vue项目的步骤

    使用webpack手动搭建vue项目的步骤

    这篇文章主要介绍了从零使用webpack手动搭建vue项目的步骤,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03
  • vue使用Echarts绘制地图完整步骤

    vue使用Echarts绘制地图完整步骤

    这篇文章主要给大家介绍了关于vue使用Echarts绘制地图的相关资料,Apache ECharts一个基于JavaScript的开源可视化图表库,提供了常规的折线图、柱状图、散点图、饼图、K线图,用于统计的盒形图,需要的朋友可以参考下
    2023-09-09
  • vue中如何引入html静态页面

    vue中如何引入html静态页面

    这篇文章主要介绍了vue中如何引入html静态页面,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01
  • vue引入cesium问题

    vue引入cesium问题

    这篇文章主要介绍了vue引入cesium问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10

最新评论