Vue如何进行事件处理?相关基础知识介绍

本篇文章给大家介绍一下vue事件处理的基础知识。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

Vue如何进行事件处理?相关基础知识介绍

Vue事件处理是每个Vue项目的必要方面。 它用于捕获用户输入,共享数据以及许多其他创造性方式。【相关推荐:《vue.js教程》】

在本文中,会介绍基础知识,并提供一些用于处理事件的代码示例。 它仅包含我认为最有用的技巧/方法,要深入了解Vue可以做的所有事情,请查看Vue文档。

基本事件处理

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

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

// v-on 指令
// OR

登录后复制

向父组件发出自定义事件

任何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,父组监听的方式都是一样的。


登录后复制登录后复制

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

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

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


登录后复制登录后复制

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

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

登录后复制

鼠标修饰符

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

Interact with Me!

登录后复制

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

 Left 

登录后复制

键盘修饰符

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


登录后复制

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

keycodes

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

登录后复制

系统修饰符

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

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

shift

alt

ctrl

meta (在mac上是CMD,在Windows上是Windows键)

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

登录后复制

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

登录后复制

事件修饰符

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

登录后复制

以上就是Vue如何进行事件处理?相关基础知识介绍的详细内容,更多请关注【创想鸟】其它相关文章!

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

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/3020178.html

(0)
上一篇 2025年3月13日 05:34:49
下一篇 2025年3月3日 16:28:59

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 深入了解vue.js的3种安装方法

    本篇文章给大家介绍一下三种 Vue.js 的安装方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 vue.js(读音 /vjuː/, 类似于 view)是一个构建数据驱动的 web 界面的渐进式框架。vue.js 的目…

    2025年3月13日 编程技术
    200
  • 深入浅析vue3中的custom renderer特性

    本篇文章带大家一起来了解一下vue3的新特性custom renderer。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 【相关推荐:《vue.js教程》】 默认的目标渲染平台 在vue3中允许用户自定义目标渲染平台,以…

    2025年3月13日 编程技术
    200
  • Vue如何封装Echarts图表

    在开始之前,我们先按照正常的组件注册流程,在项目components目录中新建一个名为radar-chart的组件,然后在一个demo页面引入该组件使用。 新建的 radar-chart 组件内容: // radar-chart.vue (…

    2025年3月13日
    200
  • 浅谈Vue中v-for,key取值影响过渡效果和动画效果(代码详解)

    之前的文章《教你怎么使用Vue实现动画效果(附代码)》中,给大家介绍了怎么使用Vue实现动画效果。下面本篇文章给大家了解一下浅谈Vue中key取值影响过渡效果和动画效果,有需要的朋友可以参考一下,希望对你们有帮助。 关于Vue.js的v-f…

    2025年3月13日
    200
  • 浅析Vue中入口缓存的问题(代码分享)

    之前的文章《你值得了解的HTTP缓存机制(代码详解)》中,给大家了解了HTTP缓存机制。下面本篇文章给大家了解Vue中入口缓存的问题,伙伴们来看看吧。 关于web的缓存策略,推荐这篇文章:Http缓存机制 在开发时候经常遇到一个问题,我们根…

    2025年3月13日
    200
  • 怎么看vuejs是否安装成功

    看vuejs是否安装成功的方法:1、使用组合键“windows+R”打开“运行”窗口,输入“cmd”,点击“确定”;2、在打开的cmd命令窗口中,执行命令“vue -V”,如果输出版本号则表示vuejs安装成功,反之则安装不成功。 本教程操…

    2025年3月13日
    200
  • vuejs怎么关闭弹窗

    vuejs关闭弹窗的方法:1、创建html代码结构;2、判断所点击的区域是否在“.mask_popup”中;3、通过“hideMaskPopup(e){…}”关闭弹窗即可。 本文操作环境:windows7系统、vue2.5.17…

    2025年3月13日
    200
  • vuejs是国产框架吗

    vuejs算是国产框架,因为vuejs框架的作者是拥有中国国籍的尤雨溪,该作者属于独立开源开发者,目前全职开发和维护Vue.js,所以说vuejs是国产框架。 本文操作环境:windows7系统、vue2.5.17版,DELL G3电脑。 …

    2025年3月13日
    200
  • vuejs的生命周期是什么

    vuejs的生命周期是指vue实例对象从创建之初到销毁的过程,vue所有功能的实现都是围绕其生命周期进行的,在生命周期的不同阶段调用对应的钩子函数可以实现组件数据管理和DOM渲染两大重要功能。 本教程操作环境:windows7系统、vue2…

    2025年3月13日 编程技术
    200
  • 怎么在idea创建vuejs项目

    创建方法:1、安装Node;2、打开idea,点击“Create New Project”-“Static Web”,填写项目名,点击“Finis”;3、打开idea的Terminal,执行指令来安装vue脚手架工具、初始化vue项目即可。…

    2025年3月13日 编程技术
    200

发表回复

登录后才能评论