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事件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • .netcore+vue 实现压缩文件下载功能

    .netcore+vue 实现压缩文件下载功能

    这篇文章主要介绍了.netcore+vue 实现压缩文件下载功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • 从0搭建vue-cli4脚手架

    从0搭建vue-cli4脚手架

    这篇文章主要介绍了从0搭建vue-cli4脚手架,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • vue结合Axios+v-for列表循环实现网易健康页面(实例代码)

    vue结合Axios+v-for列表循环实现网易健康页面(实例代码)

    这篇文章主要介绍了vue结合Axios+v-for列表循环实现网易健康页面,在项目下安装axios,通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • vue组件vue-treeselect箭头和叉图标变大问题及解决

    vue组件vue-treeselect箭头和叉图标变大问题及解决

    这篇文章主要介绍了vue组件vue-treeselect箭头和叉图标变大问题及解决方案,具有很好的参考价值,希望对大家有所帮助。
    2022-07-07
  • vue-resourse将json数据输出实例

    vue-resourse将json数据输出实例

    这篇文章主要为大家详细介绍了vue-resourse将json数据输出实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • Vue中金额、日期格式化插件@formatjs/intl的使用及说明

    Vue中金额、日期格式化插件@formatjs/intl的使用及说明

    这篇文章主要介绍了Vue中金额、日期格式化插件@formatjs/intl的使用及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • vue实现echarts中的仪表盘

    vue实现echarts中的仪表盘

    这篇文章主要为大家详细介绍了vue实现echarts中的仪表盘,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • 详解Vue3 父组件调用子组件方法($refs 在setup()、<script setup> 中使用)

    详解Vue3 父组件调用子组件方法($refs 在setup()、<script setup> 中使用)

    这篇文章主要介绍了Vue3 父组件调用子组件方法($refs 在setup()、<script setup> 中使用),在 vue2 中 ref 被用来获取对应的子元素,然后调用子元素内部的方法,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2022-08-08
  • uni-app vue3接口请求封装示例代码

    uni-app vue3接口请求封装示例代码

    uni-app是一个使用Vue.js开发的多端开发框架,下面这篇文章主要给大家介绍了关于uni-app vue3接口请求封装的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2023-05-05
  • Vue子组件与父组件详细解析

    Vue子组件与父组件详细解析

    这篇文章主要介绍的是Vue子组件与父组件,什么是父组件,什么是子组件很多时候面对这个问题我们都会有所混淆,下面文章我们就来详细介绍,需要的朋友可以参考一下
    2021-10-10

最新评论