0

0

简单介绍vue基本事件处理

WBOY

WBOY

发布时间:2022-08-08 17:32:50

|

1926人浏览过

|

来源于简书

转载

本篇文章给大家带来了关于vue的相关知识,其中主要介绍了关于基本事件处理的相关问题,vue 事件处理是每个 vue 项目的必要方面。它用于捕获用户输入,共享数据以及许多其他创造性方式。下面一起来看一下,希望对大家有帮助。

简单介绍vue基本事件处理

【相关推荐:javascript视频教程vue.js教程

Vue 事件处理是每个 Vue 项目的必要方面。它用于捕获用户输入,共享数据以及许多其他创造性方式。

在本文中,我将介绍基础知识,并提供一些用于处理事件的代码示例。

立即学习前端免费学习笔记(深入)”;

基本事件处理

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

<div v-on:click='handleClick' />
<!-- 相当于 -->
<div @click='handleClick' />

我们将介绍您可能想捕获的一些更常见的事件,单击此处以获取 DOM 事件的完整列表。

发出自定义事件

任何 Web 框架中的常见用例都是希望子组件能够向其父组件发出事件。这将允许双向数据绑定。

这样的一个示例是将数据从输入组件发送到父表单。

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

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

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

但是,Composition API 没有 this。相反,我们可以使用 Vue3 setup 方法直接访问 emit 方法。

setup 方法的第二个参数是上下文变量,它包含三个属性:attrs、slot 和 emit。

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

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

整理代码的一种方法是使用对象解构直接导入 emit。看起来像这样。

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

无论我们使用 Options API 还是 Composition API,我们的父组件都以相同的方式监听自定义事件。

<HelloWorld @update='inputUpdated'/>

如果我们发出的方法也传递了一个值,则可以用两种不同的方式捕获它-取决于我们是内联工作还是使用其他方法。

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

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

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

<HelloWorld @update='inputUpdated'/>
<script>
methods: {
  inputUpdated: (value) => {
    console.log(value) // WORKS TOO
  }
}
</ script>

处理鼠标修饰符

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

<div 
  @mousedown='handleEvent'
  @mouseup='handleEvent'
  @click='handleEvent'
  @dblclick='handleEvent'
  @mousemove='handleEvent'
  @mouseover='handleEvent'
  @mousewheel='handleEvent'
  @mouseout='handleEvent'
>
  与我互动!
</div>

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

<!-- 这将仅在鼠标左键单击时触发 -->
<div @mousedown.left='handleLeftClick'> Left </div>

按键修饰符

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

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

通常,我们希望在某个按键上监听这些事件,Vue 具有某些键的别名可以帮助到我们。

  • enter

  • tab

  • delete(捕获“删除”和“退格”键)

  • esc

  • space

    互连在线双语商务版
    互连在线双语商务版

    全自动化、全智能的在线方式管理、维护、更新的网站管理系统主要功能如下:一、系统管理:管理员管理,可以新增管理员及修改管理员密码;数据库备份,为保证您的数据安全本系统采用了数据库备份功能;上传文件管理,管理你增加产品时上传的图片及其他文件。二、企业信息:可设置修改企业的各类信息及介绍。 三、产品管理:产品类别新增修改管理,产品添加修改以及产品的审核。四、订单管理:查看订单的详细信息及订单处理。 五、

    下载
  • up

  • down

  • left

  • right

<input
  type='text'
  placeholder='Type something'
  @keyup.enter='handleEnter'
/>

需要注意的是,Vue 2.x 中,我们还可以使用键码 的方式,但在 Vue3.x 不在适用:

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

一些特殊的字符无法被匹配,如 "、'、/、=、> 和 .。这些应该在监听器内使用事件对象单独判断。

<input
  type='text'
  placeholder='Type something'
   @keyup.,='handleEnter'
/>

注意:Vue 3.x 不在支持自定义按键 config.keyCodes

系统修饰符

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

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

  • shift

  • alt

  • ctrl

  • meta (在 Mac 上为 cmd,在 Windows 上为 Windows 键)

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

<!-- 为 Shift + a clear 的自定义快捷方式 -->
<button @keyup.shift.a="clear">清除</button>

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

<!-- 仅为 Shift + a 执行 clear -->
<button @keyup.shift.a.exact="clear">清除</button>

鼠标按钮修饰符:lefe、right 和 middle,默认行为为 left(左键点击)。

<button @click.middle="clear">清除</button>

事件修饰符

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

<!-- 阻止默认操作 -->
<form @submit.prevent />
<!-- 停止事件传播 -->
<form @submit.stop="submitForm" />
<!-- 串联的修饰符 -->
<form @submit.stop.prevent="submitForm" />
<!-- 防止事件被触发多次 -->
<el-button @click.once="handleClose">执行一次</el-button>

使用修饰符时,顺序很重要;相应的代码会以同样的顺序产生。因此,用 v-on:click.prevent.self 会阻止所有的点击,而 v-on:click.self.prevent 只会阻止对元素自身的点击。

以下时 Vue 提供的完整事件修饰符:

  • stop 阻止事件传播

  • prevent 阻止默认事件

  • capture 添加事件监听器时使用事件捕获模式,即内部元素触发的事件先在此处理,然后才交由内部元素进行处理

  • self 只当在 event.target 是当前元素自身时触发处理函数,即事件不是从内部元素触发的

  • once 仅执行一次

  • passive 修饰符尤其能够提升移动端的性能

注意:不要把 .passive 和 .prevent 一起使用,因为 .prevent 将会被忽略,同时浏览器可能会向你展示一个警告。请记住,.passive 会告诉浏览器你不想阻止事件的默认行为。

<!-- 这其中包含 `event.preventDefault()` 的情况 -->
<div @scroll.passive="onScroll">...</div>

滚动事件的默认行为(即滚动行为)将会立即触发,而不会等待 onScroll 完成。

【相关推荐:javascript视频教程vue.js教程

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
vue.js为什么报错
vue.js为什么报错

vue.js报错的原因:1、语法错误;2、组件使用不当;3、数据绑定问题;4、生命周期钩子使用不当;5、插件或依赖问题;6、路由配置错误;7、异步操作处理不当等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

126

2024.03.11

vue.js插槽有哪些用
vue.js插槽有哪些用

vue.js插槽的作用:1、提高组件的可重用性;2、实现组件的灵活布局;3、实现组件间的数据传递和交互;4、促进组件的解耦和模块化。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

186

2024.03.11

vue.js怎么带参数跳转
vue.js怎么带参数跳转

vue.js带参数跳转的方法:1、定义路由;2、在组件中使用路由参数;3、进行带参数的跳转。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

97

2024.03.11

js正则表达式
js正则表达式

php中文网为大家提供各种js正则表达式语法大全以及各种js正则表达式使用的方法,还有更多js正则表达式的相关文章、相关下载、相关课程,供大家免费下载体验。

530

2023.06.20

js获取当前时间
js获取当前时间

JS全称JavaScript,是一种具有函数优先的轻量级,解释型或即时编译型的编程语言;它是一种属于网络的高级脚本语言,主要用于Web,常用来为网页添加各式各样的动态功能。js怎么获取当前时间呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

534

2023.07.28

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

718

2023.08.03

js是什么意思
js是什么意思

JS是JavaScript的缩写,它是一种广泛应用于网页开发的脚本语言。JavaScript是一种解释性的、基于对象和事件驱动的编程语言,通常用于为网页增加交互性和动态性。它可以在网页上实现复杂的功能和效果,如表单验证、页面元素操作、动画效果、数据交互等。

6018

2023.08.17

js删除节点的方法
js删除节点的方法

js删除节点的方法有:1、removeChild()方法,用于从父节点中移除指定的子节点,它需要两个参数,第一个参数是要删除的子节点,第二个参数是父节点;2、parentNode.removeChild()方法,可以直接通过父节点调用来删除子节点;3、remove()方法,可以直接删除节点,而无需指定父节点;4、innerHTML属性,用于删除节点的内容。

492

2023.09.01

JavaScript浏览器渲染机制与前端性能优化实践
JavaScript浏览器渲染机制与前端性能优化实践

本专题围绕 JavaScript 在浏览器中的执行与渲染机制展开,系统讲解 DOM 构建、CSSOM 解析、重排与重绘原理,以及关键渲染路径优化方法。内容涵盖事件循环机制、异步任务调度、资源加载优化、代码拆分与懒加载等性能优化策略。通过真实前端项目案例,帮助开发者理解浏览器底层工作原理,并掌握提升网页加载速度与交互体验的实用技巧。

1

2026.03.06

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Vue 教程
Vue 教程

共42课时 | 9.2万人学习

Vue3.x 工具篇--十天技能课堂
Vue3.x 工具篇--十天技能课堂

共26课时 | 1.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号