自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

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

[[402860]]

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

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

基本事件處理

使用v-on指令(簡稱@),我們可以監(jiān)聽DOM事件并運行處理程序方法或內(nèi)聯(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 中,我們可以簡單地調(diào)用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ù)調(diào)用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 出去方法有傳遞值,我們可以通過兩種不同的方式捕獲它,這取決于我們是使用內(nèi)聯(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都有兩個內(nèi)置的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

2022-05-05 12:02:45

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

2020-12-14 07:51:16

JS 技巧虛值

2021-07-05 05:34:10

Typescript語言開發(fā)

2021-10-21 06:52:17

Vue3組件 API

2015-04-13 13:21:45

JavaScript JavaScript

2020-04-10 16:10:17

微信小技巧移動應用

2022-12-07 08:16:50

Vue 3技巧數(shù)組

2011-05-10 17:38:35

DBA面試

2017-10-16 13:30:28

windows 10技巧輸入法

2021-05-12 10:48:02

蘋果技巧功能

2020-04-28 14:05:53

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

2021-10-22 09:41:26

橋接模式設計

2018-09-02 15:43:56

Python代碼編程語言

2021-04-16 08:49:55

JavaScript技巧參數(shù)

2015-08-13 09:03:14

調(diào)試技巧

2020-01-29 19:40:36

Python美好,一直在身邊Line
點贊
收藏

51CTO技術棧公眾號