iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >VUE3基础学习之click事件详解
  • 767
分享到

VUE3基础学习之click事件详解

2024-04-02 19:04:59 767人浏览 独家记忆
摘要

目录1. 概述2. click 事件2.1 实现数字递减2.2 事件方法中获取 event 对象2.3 事件方法中增加参数2.4 有参事件方法中获取 event 对象2.5 点击按钮

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

--结束END--

本文标题: VUE3基础学习之click事件详解

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

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

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

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

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

  • 微信公众号

  • 商务合作