返回顶部
首页 > 资讯 > 前端开发 > 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://lsjlt.com/news/135459.html(转载时请注明来源链接)

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

猜你喜欢
  • Vue3 之 Vue 事件处理指南
    目录一、基本事件处理二、向父组件发出自定义事件三、鼠标修饰符四、键盘修饰符五、系统修饰符六、事件修饰符一、基本事件处理 使用v-on指令(简称@),我们可以监听DOM事件并运行处理程...
    99+
    2024-04-02
  • 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+
    2024-04-02
  • Vue之事件处理和事件修饰符详解
    <div id="root"> <h2>{{name}},加油!</h2> <!-- 阻止默认事...
    99+
    2024-04-02
  • VUE事件处理之@click用法示例代码
    目录一、不传参的事件处理1.原理2.代码示例二、传参的事件处理1.原理2.代码示例总结总览 1.传参的事件绑定 2.不传参的事件绑定 一、不传参的事件处理 1.原理 1.1 我们在v...
    99+
    2023-05-19
    vue click事件 vue @click vue事件处理机制
  • Vue开发指南之重点知识梳理
    目录概述0. JavaScript和Web开发基础1. Vue的基础概念Vue核心功能组件单页面应用程序状态管理2. 生产环境中的Vue项目脚手架全栈 / 认证应用程序测试优化3. ...
    99+
    2024-04-02
  • PythonTkinter之事件处理详解
    目录事件绑定方法常用事件类型Event事件对象事件处理,是 GUI 程序中不可或缺的重要组成部分,相比来说,控件只是组成一台机器的零部件, 而事件处理则是驱动这台机器“正...
    99+
    2024-04-02
  • Golang处理parquet文件实战指南
    目录前言创建结构体生成parquet文件读取parquet文件计算列平均值总结前言 Parquet是Apache基金会支持的项目,是面向列存储二进制文件格式。支持不同类型的压缩方式,...
    99+
    2023-03-07
    golang parquet golang处理parquet文件
  • Vue中的事件处理详情
    目录一、事件处理二、事件修饰符三、键盘事件使用技巧一、事件处理 给按钮绑定一个 click 事件,点击弹出提示信息 <!--普通写法--> <button...
    99+
    2024-04-02
  • JavaScript 事件处理实战指南,一步步带你成为高手
    什么是 JavaScript 事件处理? JavaScript 事件处理是一种机制,用于处理用户与网页之间的交互。当用户在网页上执行某些动作时,就会触发相应的事件。例如,当用户点击某个按钮时,就会触发单击事件;当用户在文本框中输入内容时...
    99+
    2024-02-22
    JavaScript 事件处理 事件监听器 事件对象 事件类型
  • Vue3组件间传值避坑方法指南
    目录组件间传值的两个坑实例填坑坑一1. 发现天坑2. 填坑时刻坑2:1.发现天坑2.填坑时刻总结组件间传值的两个坑 我们都知道父组件可以把值传递到自组件中,但是有时候子组件需要修改...
    99+
    2023-03-06
    Vue3组件传值避坑 Vue 组件传值
  • vue事件处理器怎么使用
    本篇内容介绍了“vue事件处理器怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!监听事件可以用v-on指令监听DOM事件来触发一些ja...
    99+
    2023-07-04
  • 如何理解Vue中的事件处理和事件修饰符
    这篇文章将为大家详细讲解有关如何理解Vue中的事件处理和事件修饰符,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。 <div id="root"&...
    99+
    2023-06-25
  • Python学习之异常处理的避坑指南
    目录finally 与 return 的执行顺序else 与 return 的执行顺序总结最终想了想,还是把这个章节单独拎出来,虽然字数不多。 在代码中,存在return也应当执行f...
    99+
    2024-04-02
  • VUE 组件:一个新手指南
    什么是 Vue.js 组件? Vue.js 组件是 Vue.js 应用程序中的可重用的代码块,它们具有自己的私有状态和逻辑。组件将复杂的应用程序分解为较小的、易于管理的块,从而提高应用程序的可扩展性和可维护性。 创建组件 有两种方法可以创...
    99+
    2024-02-28
    Vue.js 组件、组件化、可重用性
  • Go语言中文件处理入门指南
    go 语言文件处理入门指南本文指南介绍了 go 语言中文件处理的基本概念和技术,包括:文件创建:使用 os.create 函数创建新文件。文件读取:使用 os.open 函数打开文件,并...
    99+
    2024-04-08
    go语言 文件处理
  • VUE 单文件组件:初学者指南
    创建单文件组件 要创建单文件组件,请使用以下文件扩展名: .vue (推荐) .js (带有 template、script 和 style 属性) 组件结构 单文件组件通常包含以下部分: 模板 (template):定义组件的 H...
    99+
    2024-04-02
  • 使用Vue怎么进行事件处理
    今天就跟大家聊聊有关使用Vue怎么进行事件处理,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。基本事件处理使用v-on指令(简称@),我们可以监听DOM事件并运行处理程序方法或内联Ja...
    99+
    2023-06-15
  • Vue事件处理函数如何绑定
    这篇文章主要介绍“Vue事件处理函数如何绑定”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Vue事件处理函数如何绑定”文章能帮助大家解决问题。在 JS 中「事件」是不需要绑定的,浏览器自带了许多的事...
    99+
    2023-07-05
  • VUE3基础学习之click事件详解
    目录1. 概述2. click 事件2.1 实现数字递减2.2 事件方法中获取 event 对象2.3 事件方法中增加参数2.4 有参事件方法中获取 event 对象2.5 点击按钮...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作