Vue(6)v-on指令的使用[通俗易懂]

Vue(6)v-on指令的使用[通俗易懂]v-on监听事件可以用v-on指令监听DOM事件,并在触发时运行一些JavaScript代码。事件代码可以直接放到v-on后面,也可以写成一个函数。示例代码如下:<divid

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

v-on

 

监听事件

可以用 v-on 指令监听 DOM 事件,并在触发时运行一些 JavaScript 代码。事件代码可以直接放到v-on后面,也可以写成一个函数。示例代码如下:

<div id="app">
  <p>{{counter}}</p>
  <button @click="counter += 1">+1</button>
  <button @click="subtract(10)">-10</button>
</div>
<script>
  const app = new Vue({
    el: "#app",
    data: {
      counter: 0
    },
    methods: {
      subtract(value){
        this.counter-=value
      }
    }
  })
</script>

 

传入event参数:

如果在事件处理函数中,想要获取原生的DOM事件,那么在html代码中,调用的时候,可以传递一个$event参数。示例代码如下:

<button v-on:click="subtract(10,$event)">减10</button>
...
<script>
...
methods: {
    subtract: function(value,event){
        this.count -= value;
        console.log(event);
    }
}
...
</script>

 

事件修饰符:

在事件处理程序中调用 event.preventDefault() 或 event.stopPropagation() 是非常常见的需求。尽管我们可以在方法中轻松实现这点,但更好的方式是:方法只有纯粹的数据逻辑,而不是去处理 DOM 事件细节。

为了解决这个问题,Vue.js 为 v-on 提供了事件修饰符。之前提过,修饰符是由点开头的指令后缀来表示的。

  • .stop:event.stopPropagation,阻止事件冒泡。
  • .prevent:event.preventDefault,阻止默认行为
  • .capture:事件捕获。
  • .self:代表当前这个被点击的元素自身。
  • .once:这个事件只执行一次。
  • .passive:在页面滚动的时候告诉浏览器不会阻止默认的行为,从而让滚动更加顺畅。

案例1:阻止单击事件继续传播

<div id="app">
  <div @click="divClick">
    1111
    <button @click.stop="btnClick">按钮</button>
  </div>
</div>
<script>
  let app = new Vue({
    el: "#app",
    data: {
      count: 0
    },
    methods: {
      divClick(){
        console.log("divClick")
      },
      btnClick(){
        console.log("btnClick")
      }
    }
  });
</script>

案例2:提交事件不再重载页面

<div id="app">
  <form action="">
    <label>
      <input type="text">
    </label>
    <label>
      <input type="submit" value="提交">
    </label>
  </form>
</div>
<script>
  const app = new Vue({
    el: "#app",
    data: {
    }
  })
</script>

以上是最标准的提交数据的代码,提交完后会自动跳转到百度,但是现在有个需求,我们希望输入完数据后,不会自动跳转到百度,而是通过自己的方法,先处理数据,处理完后,自己指定页面跳转,代码如下

<div id="app">
  <form action="https://www.baidu.com">
    <label>
      <input type="text">
    </label>
    <label>
      <input type="submit" value="提交" @click.prevent="testClick">
    </label>
  </form>
</div>
<script>
  const app = new Vue({
    el: "#app",
    methods: {
      testClick(){
      }
    }
  })
</script>

这里我们给submit绑定了一个点击事件,并使用.prevent阻止了他的默认行为

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/164864.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • centos 7 启动与切换图形界面

    centos 7 启动与切换图形界面安装图形界面默认情况下是不会安装图形界面的,所以需要自己手动安装,步骤如下:开启系统,以root身份进入安装X(XWindowSystem),命令如下: yumgroupinstall"XWindowSystem"其中大约有200多个软件,安装完成会出现complete!字样。然后安装图形界面软件,GNOME(GNOMEDesktop),命令如下: yumg…

    2022年5月1日
  • Java是什么?主要是干什么的?「建议收藏」

    Java是什么?主要是干什么的?「建议收藏」随着Java技术不断发展,许多人都想问:Java是什么?主要是干什么的呀?现在小朗来为大家解惑。java是一种高级计算机语言,一种可以编写跨平台应用软件、完全面向对象的程序设计语言。那Java主要是干嘛的呀?一、java可以做网站Java主要可以用于编写网站,如今许多商业网站都用Jsp写的,JSP全称JavaServerPages。它是一种动态网站技术性,例如大家了解的163,一些政府门户网站全是选用JSP撰写的。因此学习培训Java的同学们能够找开发网站层面的工作中,并且…

    2022年7月7日
  • 领导含泪叮嘱我:MySQL 建表字段记得用 not null,不然就收拾包袱滚蛋

    领导含泪叮嘱我:MySQL 建表字段记得用 not null,不然就收拾包袱滚蛋上午我收到一条短信,内容是“尊敬的null你好,XXX”,当时我就笑了。真是外行看热闹,内行看门道,这是程序员都能Get的笑点,说明程序没有正确从数据库获取到我的姓名,然后把空值格式化为了null。

    2022年6月14日
  • nms非极大值抑制原理_什么是行为抑制

    nms非极大值抑制原理_什么是行为抑制参考博客物体检测中常用的几个概念迁移学习、IOU、NMS理解目标定位和检测系列(3):交并比(IOU)和非极大值抑制(NMS)的python实现一、NMS(非极大抑制)概念NMS即nonmaximumsuppression即非极大抑制,顾名思义就是抑制不是极大值的元素,搜索局部的极大值。在最近几年常见的物体检测算法(包括rcnn、sppnet、fast-rcnn、fast…

    2022年10月13日
  • Linux中安装tree命令

    Linux中安装tree命令在CentOS系统的普通用户下,使用sudoyum-yinstalltree下载tree命令,在ubuntu系统的普通用户下,使用sudoapt-getinstalltree下载tree命令

    2022年7月24日
  • 经典递归解决汉诺塔_c语言汉诺塔递归算法

    经典递归解决汉诺塔_c语言汉诺塔递归算法算法:当只有一个盘子的时候,只需要从将A塔上的一个盘子移到C塔上。当A塔上有两个盘子是,先将A塔上的1号盘子(编号从上到下)移动到B塔上,再将A塔上的2号盘子移动的C塔上,最后将B塔上的小盘子移动到C塔上。当A塔上有3个盘子时,先将A塔上编号1至2的盘子(共2个)移动到B塔上(需借助C塔),然后将A塔上的3号最大的盘子移动到C塔,最后将B塔上

    2022年10月12日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号