成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

開發(fā) 前端
Vue事件處理是每個Vue項目的必要方面。它用于捕獲用戶輸入,共享數(shù)據(jù)以及許多其他創(chuàng)造性方式。

[[402860]]

Vue事件處理是每個Vue項目的必要方面。它用于捕獲用戶輸入,共享數(shù)據(jù)以及許多其他創(chuàng)造性方式。

在本文中,會介紹基礎知識,并提供一些用于處理事件的代碼示例。它僅包含我認為最有用的技巧/方法,要深入了解Vue可以做的所有事情,請查看Vue文檔。

基本事件處理

使用v-on指令(簡稱@),我們可以監(jiān)聽DOM事件并運行處理程序方法或內聯(lián)Javascript。

  1. // v-on 指令 
  2. <div v-on:click='handleClick' /> 
  3.  
  4. // OR 
  5.  
  6. <div @click='handleClick' /> 

向父組件發(fā)出自定義事件

任何Web框架中的常見用例都是希望子組件能夠向其父組件發(fā)出事件,這也是雙向數(shù)據(jù)綁定原理。

常見一個示例是將數(shù)據(jù)從 input組件發(fā)送到父表單。

根據(jù)我們使用的是Options API還是Composition API,發(fā)出事件的語法是不同的。

在 Options API 中,我們可以簡單地調用this.$emit(eventName, payload),示例如下:

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

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

只要導入context對象,就可以使用與Options API相同的參數(shù)調用emit。

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

當然,我在項目中經(jīng)常使用解構的方式來使用:

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

完美!

無論我們使用Options 還是 Composition API,父組監(jiān)聽的方式都是一樣的。

  1. <HelloWorld @update='inputUpdated'/> 

首先,我們可以在模板中使用$ event訪問傳遞的值。

如果在組件 emit 出去方法有傳遞值,我們可以通過兩種不同的方式捕獲它,這取決于我們是使用內聯(lián)還是使用方法。

第一種是在模板中使用$event訪問傳遞的值。

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

第二,使用方法來處理事件,則傳遞的值將作為第一個參數(shù)自動傳遞給我們的方法。

  1. <HelloWorld @update='inputUpdated'/> 
  2.  
  3. // ... 
  4.  
  5. methods: { 
  6.     inputUpdated: (value) => { 
  7.       console.log(value) // WORKS TOO 
  8.     } 

鼠標修飾符

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

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

對于單擊事件,我們還可以添加鼠標事件修飾符來限制哪個鼠標按鈕將觸發(fā)我們的事件。有三個: left,right 和 middle。

  1. <!-- 這只會觸發(fā)鼠標左鍵 --> 
  2. <div @mousedown.left='handleLeftClick'Left </div> 

鍵盤修飾符

我們可以聽三個DOM鍵盤事件:

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

通常,我們想檢測某個鍵上的這些事件,有兩種方法可以執(zhí)行此操作。

  1. keycodes
  2. Vue具有某些鍵的別名(enter, tab, delete, esc, space, up, down, left, right)
  1. <!-- Trigger even when enter is released --> 
  2. <input 
  3.    type='text' 
  4.    placeholder='Type something' 
  5.    @keyup.enter='handleEnter' 
  6. /> 
  7.  
  8. <!-- OR --> 
  9. <input 
  10.    type='text' 
  11.    placeholder='Type something' 
  12.    @keyup.13='handleEnter' 
  13. /> 

系統(tǒng)修飾符

對于某些項目,我們可能只想在用戶按下修飾鍵的情況下觸發(fā)事件。修飾鍵類似于Command或shift。

在Vue中,有四個系統(tǒng)修飾符。

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

這對于在Vue應用程序中創(chuàng)建諸如自定義鍵盤快捷鍵之類的功能非常有用。

  1. <!-- 自定義快捷方式,楊使用Shift + 8 創(chuàng)建列表 --> 
  2. <input 
  3.    type='text' 
  4.    placeholder='Type something' 
  5.    @keyup.shift.56='createList' 
  6. /> 

在Vue文檔中,還有一個exact的修飾符,以確保僅在按下我們指定的鍵且沒有其他鍵的情況下才觸發(fā)事件。

  1. <!-- 自定義快捷方式,只有Shift + 8 這兩個按下時才會創(chuàng)建列表--> 
  2. <input 
  3.    type='text' 
  4.    placeholder='Type something' 
  5.    @keyup.shift.56.exact='createList' 
  6. /> 

事件修飾符

對于所有DOM事件,我們可以使用一些修飾符來更改其運行方式。無論是停止傳播還是阻止默認操作,Vue都有兩個內置的DOM事件修飾符。

  1. <!-- 阻止默認行為 --> 
  2. <form @submit.prevent> 
  3.  
  4. <!-- 阻止冒泡 --> 
  5. <form @submit.stop='submitForm'
  6.  
  7. <!-- 阻止默認行為和冒泡 --> 
  8. <form @submit.stop.prevent='submitForm'
  9.  
  10. <!-- 防止事件被多次觸發(fā) --> 
  11. <div @close.once='handleClose'>  

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

作者:Fernando Doglio 譯者:前端小智 來源:medium

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

本文轉載自微信公眾號「大遷世界」,可以通過以下二維碼關注。轉載本文請聯(lián)系大遷世界公眾號。

 

責任編輯:武曉燕 來源: 大遷世界
相關推薦

2020-10-28 08:06:09

Vue3框架數(shù)據(jù)

2021-02-16 09:02:59

Python代碼技巧

2021-11-01 12:10:56

Python技巧代碼

2015-05-07 13:13:27

JavaScript JavaScript

2020-12-14 07:51:16

JS 技巧虛值

2022-05-05 12:02:45

SCSS函數(shù)開發(fā)

2021-07-05 05:34:10

Typescript語言開發(fā)

2015-04-13 13:21:45

JavaScript JavaScript

2021-10-21 06:52:17

Vue3組件 API

2020-04-10 16:10:17

微信小技巧移動應用

2022-12-07 08:16:50

Vue 3技巧數(shù)組

2017-10-16 13:30:28

windows 10技巧輸入法

2011-05-10 17:38:35

DBA面試

2021-10-22 09:41:26

橋接模式設計

2020-04-28 14:05:53

CSS網(wǎng)頁開發(fā)

2021-05-12 10:48:02

蘋果技巧功能

2018-09-02 15:43:56

Python代碼編程語言

2015-08-13 09:03:14

調試技巧

2020-01-29 19:40:36

Python美好,一直在身邊Line

2021-01-05 11:22:58

Python字符串代碼
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 九一国产精品 | 在线视频中文字幕 | 国产视频第一页 | 精品综合久久久 | 国产高清视频在线观看播放 | 狠狠色综合久久丁香婷婷 | 国产在线观看一区二区 | av中文字幕在线 | 色999视频 | 日韩h| 久久精品69 | 久久三区 | 精品一区二区三区在线视频 | 亚洲福利| 色综合国产 | 龙珠z在线观看 | 五月婷婷激情网 | 成人做爰9片免费看网站 | 国产精品一区二区精品 | 中文字幕第一页在线 | 六月色婷| 福利视频一二区 | 久久亚洲欧美日韩精品专区 | 国产亚洲精品美女久久久久久久久久 | 成人免费激情视频 | 欧美中国少妇xxx性高请视频 | 一区在线播放 | 中文字幕电影在线观看 | 亚洲精品久久久久中文字幕欢迎你 | 欧美激情国产日韩精品一区18 | 欧美久久一区二区三区 | 日韩成人精品一区 | 日韩a在线观看 | 中文字幕高清在线 | 黄色成人在线观看 | 夜夜爽99久久国产综合精品女不卡 | 成年网站在线观看 | 日韩欧美一区二区三区免费观看 | 国产自产c区 | 欧美日韩国产不卡 | 久久国产综合 |