一些你可能还不知事件技巧–Vue3更新

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

成都创新互联是一家集网站建设,本溪企业网站建设,本溪品牌网站建设,网站定制,本溪网站建设报价,网络营销,网络优化,本溪网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

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

基本事件处理

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

 
 
 
 
  1. // v-on 指令
  2. // OR

向父组件发出自定义事件

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

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

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

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

   
 
 
 
  1. export default {
  2.   methods: {
  3.     handleUpdate: () => {
  4.       this.$emit('update', 'Hello World')
  5.     }
  6.   }
  7. }

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

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

   
 
 
 
  1. export default {
  2.   setup (props, context) {
  3.     const handleUpdate = () => {
  4.       context.emit('update', 'Hello World')
  5.     }
  6.     return { handleUpdate }
  7.   } 
  8. }

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

   
 
 
 
  1. export default {
  2.   setup (props, { emit }) {
  3.     const handleUpdate = () => {
  4.       emit('update', 'Hello World')
  5.     }
  6.     return { handleUpdate }
  7.   } 
  8. }

完美!

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

   
 
 
 

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

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

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

   
 
 
 

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

   
 
 
 
  1. // ...
  2. methods: {
  3.     inputUpdated: (value) => {
  4.       console.log(value) // WORKS TOO
  5.     }
  6. }

鼠标修饰符

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

   
 
 
 
  1.   @mousedown='handleEvent'
  2.   @mouseup='handleEvent'
  3.   @click='handleEvent'
  4.   @dblclick='handleEvent'
  5.   @mousemove='handleEvent'
  6.   @mouseover='handleEvent'
  7.   @mousewheel='handleEvent'
  8.   @mouseout='handleEvent'
  9. >
  10. Interact with Me!

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

  
 
 
 
  1.  Left 

键盘修饰符

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

  
 
 
 
  1.    type='text'
  2.    placeholder='Type something'
  3.    @keypress='handleKeyPressed'
  4.    @keydown='handleKeyDown'
  5.    @keyup='handleKeyUp'
  6. />

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

  1. keycodes
  2. Vue具有某些键的别名(enter, tab, delete, esc, space, up, down, left, right)
  
 
 
 
  1.    type='text'
  2.    placeholder='Type something'
  3.    @keyup.enter='handleEnter'
  4. />
  5.    type='text'
  6.    placeholder='Type something'
  7.    @keyup.13='handleEnter'
  8. />

系统修饰符

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

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

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

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

  
 
 
 
  1.    type='text'
  2.    placeholder='Type something'
  3.    @keyup.shift.56='createList'
  4. />

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

  
 
 
 
  1.    type='text'
  2.    placeholder='Type something'
  3.    @keyup.shift.56.exact='createList'
  4. />

事件修饰符

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

  
 
 
 
  1.  

~ 完,我是刷碗智,我去刷碗了,骨得白~

作者:Fernando Doglio 译者:前端小智 来源:medium

原文:https://learue.co/2020/01/a-vue-event-hanling-cheatsheet-the-essentials/

本文转载自微信公众号「大迁世界」,可以通过以下二维码关注。转载本文请联系大迁世界公众号。

网站栏目:一些你可能还不知事件技巧–Vue3更新
文章位置:http://www.shufengxianlan.com/qtweb/news17/553417.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

猜你还喜欢下面的内容

品牌网站建设知识

分类信息网