广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Vue3 之 Vue 事件处理指南
  • 891
分享到

Vue3 之 Vue 事件处理指南

2024-04-02 19:04:59 891人浏览 八月长安
摘要

目录一、基本事件处理二、向父组件发出自定义事件三、鼠标修饰符四、键盘修饰符五、系统修饰符六、事件修饰符一、基本事件处理 使用v-on指令(简称@),我们可以监听DOM事件并运行处理程

一、基本事件处理

使用v-on指令(简称@),我们可以监听DOM事件并运行处理程序方法或内联javascript


// v-on 指令
<div v-on:click='handleClick' />

// OR

<div @click='handleClick' />

二、向父组件发出自定义事件

任何WEB框架中的常见用例都是希望子组件能够向其父组件发出事件,这也是双向数据绑定原理。

常见一个示例是将数据从 input组件发送到父表单。

根据我们使用的是Options api还是Composition API,发出事件的语法是不同的。

Options API 中,我们可以简单地调用this.$emit(eventName, payload) ,示例如下:


export default {
  methods: {
    handleUpdate: () => {
      this.$emit('update', 'Hello World')
    }
  }
}


但是,Composition API 使用方式与此不同。 需要在 vue3 提供的 setup方法使用emit方法。

只要导入context对象,就可以使用与Options API相同的参数调用emit。


export default {
  setup (props, context) {
    const handleUpdate = () => {
      context.emit('update', 'Hello World')
    }

    return { handleUpdate }
  } 
}

当然,我在项目中经常使用解构的方式来使用:


export default {
  setup (props, { emit }) {
    const handleUpdate = () => {
      emit('update', 'Hello World')
    }

    return { handleUpdate }
  } 
}

完美!

无论我们使用Options 还是 Composition API,父组监听的方式都是一样的。


<HelloWorld @update='inputUpdated'/>


首先,我们可以在模板中使用$ event访问传递的值。

如果在组件 emit 出去方法有传递值,我们可以通过两种不同的方式捕获它,这取决于我们是使用内联还是使用方法。

第一种:是在模板中使用$event访问传递的值。


<HelloWorld @update='inputUpdated($event)'/>


第二种:使用方法来处理事件,则传递的值将作为第一个参数自动传递给我们的方法。


<HelloWorld @update='inputUpdated'/>

// ...

methods: {
    inputUpdated: (value) => {
      console.log(value) // WORKS TOO
    }
}

三、鼠标修饰符

下面是我们可以在v-on指令中捕获的主要DOM鼠标事件列表:


<div 
  @mousedown='handleEvent'
  @mouseup='handleEvent'
  @click='handleEvent'
  @dblclick='handleEvent'
  @mousemove='handleEvent'
  @mouseover='handleEvent'
  @mousewheel='handleEvent'
  @mouseout='handleEvent'
>
Interact with Me!
</div>


对于单击事件,我们还可以添加鼠标事件修饰符来限制哪个鼠标按钮将触发我们的事件。有三个: left,right middle


<!-- 这只会触发鼠标左键 -->
<div @mousedown.left='handleLeftClick'> Left </div>

四、键盘修饰符

我们可以听三个DOM键盘事件:


<input
   type='text'
   placeholder='Type something'
   @keypress='handleKeyPressed'
   @keydown='handleKeyDown'
   @keyup='handleKeyUp'
/>


通常,我们想检测某个键上的这些事件,有两种方法可以执行此操作。

  1. keycodes
  2. Vue具有某些键的别名(enter, tab, delete, esc, space, up, down, left, right)

<!-- Trigger even when enter is released -->
<input
   type='text'
   placeholder='Type something'
   @keyup.enter='handleEnter'
/>

<!-- OR -->
<input
   type='text'
   placeholder='Type something'
   @keyup.13='handleEnter'
/>

五、系统修饰符

对于某些项目,我们可能只想在用户按下修饰键的情况下触发事件。 修饰键类似于Command或shift。

在Vue中,有四个系统修饰符

  1. shift
  2. alt
  3. ctrl
  4. meta (在Mac上是CMD,在windows上是Windows键)

这对于在Vue应用程序中创建诸如自定义键盘快捷键之类的功能非常有用。


<!-- 自定义快捷方式,杨使用Shift + 8 创建列表 -->
<input
   type='text'
   placeholder='Type something'
   @keyup.shift.56='createList'
/>


Vue文档中,还有一个exact的修饰符,以确保仅在按下我们指定的键且没有其他键的情况下才触发事件。


<!-- 自定义快捷方式,只有Shift + 8 这两个按下时才会创建列表-->
<input
   type='text'
   placeholder='Type something'
   @keyup.shift.56.exact='createList'
/>

六、事件修饰符

对于所有DOM事件,我们可以使用一些修饰符来更改其运行方式。 无论是停止传播还是阻止默认操作,Vue都有两个内置的DOM事件修饰符。


<!-- 阻止默认行为 -->
<fORM @submit.prevent>

<!-- 阻止冒泡 -->
<form @submit.stop='submitForm'>

<!-- 阻止默认行为和冒泡 -->
<form @submit.stop.prevent='submitForm'>

<!-- 防止事件被多次触发 -->
<div @close.once='handleClose'> 

代码部署后可能存在的BUG没法实时知道,事后为了解决这些BUG,花了大量的时间进行log 调试,这边顺便给大家推荐一个好用的BUG监控工具Fundebug。

到此这篇关于Vue3 之 Vue 事件处理指南的文章就介绍到这了,更多相关Vue 事件处理指南内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Vue3 之 Vue 事件处理指南

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

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

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

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

下载Word文档
猜你喜欢
  • Vue3 之 Vue 事件处理指南
    目录一、基本事件处理二、向父组件发出自定义事件三、鼠标修饰符四、键盘修饰符五、系统修饰符六、事件修饰符一、基本事件处理 使用v-on指令(简称@),我们可以监听DOM事件并运行处理程...
    99+
    2022-11-12
  • Vue3学习之事件处理详解
    目录1.基本使用2.事件修饰符3.按键修饰符1.基本使用 我们可以使用 v-on 指令来监听 DOM 事件,从而执行 JavaScript 代码。 v-on 指令可以缩写为 @ 符号...
    99+
    2022-12-08
    Vue3事件处理 Vue3事件 Vue 事件处理
  • VUE入门学习之事件处理
    目录1.函数绑定2.带参数和$event 3.多个函数绑定一个事件4.事件修饰符5.按键修饰符 6. 系统修饰键 .exact 修饰...
    99+
    2022-11-12
  • Vue之事件处理和事件修饰符详解
    <div id="root"> <h2>{{name}},加油!</h2> <!-- 阻止默认事...
    99+
    2022-11-12
  • Vue开发指南之重点知识梳理
    目录概述0. JavaScript和Web开发基础1. Vue的基础概念Vue核心功能组件单页面应用程序状态管理2. 生产环境中的Vue项目脚手架全栈 / 认证应用程序测试优化3. ...
    99+
    2022-11-12
  • Golang处理parquet文件实战指南
    目录前言创建结构体生成parquet文件读取parquet文件计算列平均值总结前言 Parquet是Apache基金会支持的项目,是面向列存储二进制文件格式。支持不同类型的压缩方式,...
    99+
    2023-03-07
    golang parquet golang处理parquet文件
  • VUE事件处理之@click用法示例代码
    目录一、不传参的事件处理1.原理2.代码示例二、传参的事件处理1.原理2.代码示例总结总览 1.传参的事件绑定 2.不传参的事件绑定 一、不传参的事件处理 1.原理 1.1 我们在v...
    99+
    2023-05-19
    vue click事件 vue @click vue事件处理机制
  • Python学习之异常处理的避坑指南
    目录finally 与 return 的执行顺序else 与 return 的执行顺序总结最终想了想,还是把这个章节单独拎出来,虽然字数不多。 在代码中,存在return也应当执行f...
    99+
    2022-11-13
  • Shell脚本学习指南之文本处理工具
    4.1 排序文本 4.1.1 行的排序未提供命令行选项时,整个记录会根据当前locale所定义的次序排序。在传统的C locale中,也就是ASCII顺序。 4.1.2 以字段排序-k选项的后面接着的是一个...
    99+
    2022-06-04
    学习指南 脚本 文本
  • PythonTkinter之事件处理详解
    目录事件绑定方法常用事件类型Event事件对象事件处理,是 GUI 程序中不可或缺的重要组成部分,相比来说,控件只是组成一台机器的零部件, 而事件处理则是驱动这台机器“正...
    99+
    2022-11-13
  • python数据分析实战指南之异常值处理
    目录异常值1、异常值定义2、异常值处理方式2.1 均方差2.2 箱形图3、实战3.1 加载数据3.2 检测异常值数据3.3 显示异常值的索引位置总结异常值 异常值是指样本中的个别值,...
    99+
    2022-11-13
  • Vue中的事件处理详情
    目录一、事件处理二、事件修饰符三、键盘事件使用技巧一、事件处理 给按钮绑定一个 click 事件,点击弹出提示信息 <!--普通写法--> <button...
    99+
    2022-11-13
  • 如何理解Vue中的事件处理和事件修饰符
    这篇文章将为大家详细讲解有关如何理解Vue中的事件处理和事件修饰符,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。 <div id="root"&...
    99+
    2023-06-25
  • vue事件处理器怎么使用
    本篇内容介绍了“vue事件处理器怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!监听事件可以用v-on指令监听DOM事件来触发一些ja...
    99+
    2023-07-04
  • Vue3的事件处理和修饰符怎么定义使用
    本篇内容介绍了“Vue3的事件处理和修饰符怎么定义使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Vue事件处理是每个Vue项目的必要方面...
    99+
    2023-07-04
  • Vue事件处理函数如何绑定
    这篇文章主要介绍“Vue事件处理函数如何绑定”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Vue事件处理函数如何绑定”文章能帮助大家解决问题。在 JS 中「事件」是不需要绑定的,浏览器自带了许多的事...
    99+
    2023-07-05
  • 使用Vue怎么进行事件处理
    今天就跟大家聊聊有关使用Vue怎么进行事件处理,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。基本事件处理使用v-on指令(简称@),我们可以监听DOM事件并运行处理程序方法或内联Ja...
    99+
    2023-06-15
  • Vue.js前端框架之事件处理小结
    1. v-on 事件监听 监听DOM事件使用 v-on 指令。该指令通常在模板中直接使用,在触发事件时会执行一些 JavaScript 代码。 v-on 指令的基本用法 (1)在 H...
    99+
    2022-11-12
  • Android事件分发之View事件处理关键及示例分析
    目录目的View处理事件的关键View事件处理分析View.onTouchEvent()分析处理长按事件处理点击事件处理tap事件总结目的 网上已经有很多关于事件分发的优秀文章,为...
    99+
    2023-02-14
    Android事件分发View事件处理 Android View事件
  • vue中怎么处理鼠标划过事件
    本篇文章给大家分享的是有关vue中怎么处理鼠标划过事件,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。鼠标事件进行监听需求中,在一个table(...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作