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

news/2025/2/23 0:09:23

我们可以使用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:只在事件发送者自身触发时才触发事件
<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>



http://www.niftyadmin.cn/n/5196006.html

相关文章

64位ATT汇编语言使用bss段.skip指令储存字符,并使用系统调用输出字符

.global main .section .data .section .bss# 需要输出的字符数组&#xff0c;还没有初始化mystring: .skip 4 .section .text main:# 将mystring这个字符串的地址存入到rbx寄存器中leaq mystring,%rbx# 将a放入到mystring第一个字节里边movb $a,(%rbx)# 将地址往后边移动一个字…

连接服务器上mysql数据库

1. 首先在服务器的安全组上设置开放3306端口&#xff08;默认是这个&#xff0c;有自定义可以酌情更改&#xff09; 2. 更改服务器上的数据库配置文件vi /etc/mysql/my.cnf 增加下面bind- address配置 [mysqld] bind-address0.0.0.0 3. 授予本地IP地址的主机连接权限 - 创建…

大模型LLM 在线量化;GPTQ\AWQ量化

1、大模型LLM 在线量化 参考:https://www.cnblogs.com/bruceleely/p/17348782.html ##8bit model = AutoModel.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True).quantize(8).half(

C++中结构体的初始化

C中结构体的初始化 结构体是一个由程序员定义的数据类型&#xff0c;可以容纳许多不同的数据值。在过去&#xff0c;面向对象编程的应用尚未普及之前&#xff0c;程序员通常使用这些从逻辑上连接在一起的数据组合到一个单元中。一旦结构体类型被声明并且其数据成员被标识&…

一、MySQL-Replication(主从复制)

1.1、MySQL Replication 主从复制&#xff08;也称 AB 复制&#xff09;允许将来自一个MySQL数据库服务器&#xff08;主服务器&#xff09;的数据复制到一个或多个MySQL数据库服务器&#xff08;从服务器&#xff09;。 根据配置&#xff0c;您可以复制数据库中的所有数据库&a…

浏览器如何导入Cookie

使用Chrome内核浏览器&#xff0c;F12进入控制台&#xff0c;输入以下代码&#xff0c;其中mycookie替换为需要导入的全部Cookie内容&#xff0c;回车显示success成功。 function UpdateCookies(cookies) { datas cookies.split(";"); for(var i0; i<datas.leng…

Vue 设置v-html中元素样式

使用方式&#xff1a; <<< img { max-width: 100% } 如&#xff1a;要将v-html中的图片元素(img)的最大宽度设置为100%. <template><div ><div class"rtfDiv book" v-html"content"></div></div> </template&…

制作含有音频、视频的网页

参考代码如下 <!DOCTYPE html> <html> <head><title>视频音乐网页</title> </head> <body><!-- 视频 --><video width"320" height"240" controls><source src"movie.mp4" type"…