Vue学习--Day5

本文详细介绍了Vue.js中的v-on指令用于事件监听的各种用法,包括无参数、带参数的方法调用,以及事件修饰符stop、prevent、keyup等的使用,展示了如何阻止事件冒泡、阻止默认行为以及监听特定键盘按键。通过实例代码,阐述了事件处理的常见场景和技巧。
摘要由CSDN通过智能技术生成


前言

在前端开发中,我们需要经常和用户交互,这个时候,我们就必须监听用户发生的事件,比如点击、拖拽、键盘事件等 在vue中使用v-on指令进行事件监听

一、v-on 事件监听

  • v-on就是用于绑定事件的

v-on的基本使用如下:

<div id="hey">
  <h2>{{counter}}</h2>
  <button v-on:click="increment">+</button>
  <!--  语法糖 v-on: -> @ -->
  <button v-on:click="decrement">-</button>

</div>

<script src="../vue.js"></script>
<script>
  //ES6中 let(变量)/const(常量)
  const app = new Vue({
    el: '#hey', //用于挂载要管理的元素
    data: { //定义数据
      counter: 0
    },
    methods:{
      increment(){
        this.counter++
      },

      decrement(){
        this.counter--
      }
    }

  })
</script>

在这里插入图片描述

按"+“就会加1,按”-"就会减1

二、v-on 参数问题

1.情况一:methods的方法有参数,传值

<button @click="msg('lhs')">传值</button>

methods:{
    msg(event){
        console.log(event);//输出的lhs
    }
}

@click="msg(‘lhs’)"传值时必须加上单引号,不加就传data里的参数

2.情况二:methods的方法有参数,但没有传值

<button @click="msg">传值</button>

methods:{
    msg(event){
        console.log(event);//输出的event
    }
}

返回的是event(Event 对象代表事件的状态,比如事件在其中发生的元素、键盘按键的状态、鼠标的位置、鼠标按钮的状态)

3.情况三:methods的方法有参数,传值同时也要event

<button @click="msg">传值</button>

methods:{
    msg(event){
        console.log(event);//输出的event
    }
}

返回的是event(Event 对象代表事件的状态,比如事件在其中发生的元素、键盘按键的状态、鼠标的位置、鼠标按钮的状态)

三、v-on 的修饰符

1 .stop :表示停止冒泡事件

<div id="hey">
<!-- 1. stop修饰符的使用-->
  <div @click=" divClick">
    <button @click.stop="btnClick">按钮</button>
  </div>

</div>

<script src="../vue.js"></script>
<script>
  //ES6中 let(变量)/const(常量)
  const app = new Vue({
    el: '#hey', //用于挂载要管理的元素
    data: { //定义数据
      counter: 0
    },
    methods:{
      btnClick(){
        console.log("btnClick");
      },

      divClick(){
        console.log("divClick");
      }
    }

  })
</script>

在这里插入图片描述

上述代码停止了divClick冒泡

2 .prevent :阻止默认行为

<div id="hey">
<!--  2. prevent修饰符的使用-->
  <br>
  <form action="baidu">
    <input type="submit" value="提交" @click.prevent="submitClick" >
  </form>

</div>

<script src="../vue.js"></script>
<script>
  //ES6中 let(变量)/const(常量)
  const app = new Vue({
    el: '#hey', //用于挂载要管理的元素
    data: { //定义数据
      counter: 0
    },
    methods:{
      submitClick(){
        console.log("submitClick");
      }

    }

  })
</script>

在这里插入图片描述

上述代码阻止了submit行为的执行

3 监听某个键盘的键帽

<div id="hey">
<!--  3. 监听某个键盘的键帽-->
  <input type="text" @keyup="keyUp">

</div>

<script src="../vue.js"></script>
<script>
  //ES6中 let(变量)/const(常量)
  const app = new Vue({
    el: '#hey', //用于挂载要管理的元素
    data: { //定义数据
      counter: 0
    },
    methods:{
      keyUp(){
        console.log("keyUp");
      }

    }

  })
</script>

在这里插入图片描述
在这里插入图片描述

4 .native 暂时略

5 .once只触发一次回调

<div id="hey">
<!--  4. .once修饰符的使用-->
  <button @click.once="btn2Click">按钮2</button>
</div>

<script src="../vue.js"></script>
<script>
  //ES6中 let(变量)/const(常量)
  const app = new Vue({
    el: '#hey', //用于挂载要管理的元素
    data: { //定义数据
      counter: 0
    },
    methods:{
      btn2Click(){
        console.log("btn2Click");
      }

    }

  })
</script>

在这里插入图片描述
参考:
https://www.cnblogs.com/bushui/p/12207926.html
https://www.bilibili.com/video/BV15741177Eh?p=33&spm_id_from=pageDriver

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值