Vue3+Vite实现工程化,事件绑定以及修饰符

我们可以使用v-on来监听DOM事件,并在事件触发时执行对应的Vue的Javascript代码。

  • 用法:v-on:click = "handler" 或简写为 @click = "handler"
  • vue中的事件名=原生事件名去掉 on 前缀 如:onClick --> click
  • handler的值可以是方法事件处理器,也可以是内联事件处理器
  • 绑定事件时,可以通过一些绑定的修饰符,常见的事件修饰符如下

|--------------------------------|
| @click.once:只触发一次事件。重点 |
| @click.prevent:阻止默认事件。重点 |
| @click.stop:阻止事件冒泡 |
| @click.capture:使用事件捕获模式而不是冒泡模式 |
| @click.self:只在事件发送者自身触发时才触发事件 |

html 复制代码
<script setup>

    import {ref} from "vue";

    //响应式数据 当发生变化时,会自动更新 dom 树
    let count = ref(0);

    let addCount=()=>{
      count.value++;
    }

    let incrCount=(event)=>{
      count.value++;
      //通过事件对象阻止组件的默认行为
      event.preventDefault();
    }

    let sayHello=()=>{
      alert("hello world!")
    }

    let h01=()=>{
      alert("ho1")
    }
    let h02=()=>{
      alert("ho2")
      event.stopPropagation();    //阻止事件传播,繁殖,蔓延
    }
    let h03=()=>{
      alert("h03");
    }

</script>

<template>

    <div>
       <h1>count的值是:{{count}}</h1>

      <!--方法事件处理器-->
      <button v-on:click="addCount()">addCount</button><br>

      <!--内联事件处理器-->
      <button @click="count++">incrCount</button><br>

      <!--事件修饰符 once 只绑定事件一次-->
      <button @click.once="count++">addOnce</button><br>

      <!--事件修饰符 prevent 阻止组件的默认行为-->
      <a href="https://blog.csdn.net/m0_65152767?spm=1011.2124.3001.5343" target="_blank" @click.prevent="count++">prevent</a><br>

      <!--原是js方式阻止组件默认行为(推荐)-->
      <a href="https://blog.csdn.net/m0_65152767?spm=1010.2135.3001.5343" target="_blank" @click="incrCount($event)">prevent</a><br>

      <button v-on:click="sayHello">点我</button>

      <button @click="sayHello">点我省略v-on:</button>

      <div @click="h01" style="background-color: #abc;width: 200px;height: 200px">
        <div @click="h02" style="background-color: #cba;width: 100px;height: 100px">HELLO</div>
        <div @click.stop="h03" style="background-color: #dfb;width: 100px;height: 100px">HELLO</div>
      </div>
    </div>

</template>
相关推荐
用户059540174461 分钟前
用了3年Redis,才发现我一直没搞懂缓存一致性测试
前端·css
swipe9 分钟前
07|(前端转后全栈)为什么后端也要缓存?从前端缓存思维理解 Redis
前端·后端·全栈
IT小盘14 分钟前
05-企业项目统一接入多个大模型-适配器模式实战
前端·人工智能·适配器模式
swipe18 分钟前
06|(前端转后全栈)登录后端到底在做什么?JWT、Spring Security 和权限链路
前端·后端·全栈
海上彼尚1 小时前
Nodejs也能写Agent - 22.LangGraph篇 - 上下文工程
前端·javascript·人工智能·langchain·node.js
阳光是sunny2 小时前
LangGraph实战教程:预定义状态MessagesState与AgentState
前端·人工智能·后端
muddjsv2 小时前
CSS选择器体系精讲:按身份、结构、状态精准匹配元素(零基础吃透)
前端·css
程序软件分享2 小时前
多语言DAPP综合盘交易所系统源码搭建剖析
vue.js·金融·开源
GuWenyue2 小时前
等AI回复卡顿到劝退?Vue3+DeepSeek流式输出实战,70行代码实现打字机效果
前端·人工智能·客户端