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

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

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

[[402860]]

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

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

基本事件處理

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

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

向父組件發出自定義事件

任何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.   } 

但是,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.  
  7.     return { handleUpdate } 
  8.   }  

當然,我在項目中經常使用解構的方式來使用:

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

完美!

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

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

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

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

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

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

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

  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> 

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

  1. <!-- 這只會觸發鼠標左鍵 --> 
  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. /> 

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

  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. /> 

系統修飾符

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

在Vue中,有四個系統修飾符。

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

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

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

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

  1. <!-- 自定義快捷方式,只有Shift + 8 這兩個按下時才會創建列表--> 
  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. <!-- 防止事件被多次觸發 --> 
  11. <div @close.once='handleClose'>  

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

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

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

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

 

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

2020-10-28 08:06:09

Vue3框架數據

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函數開發

2020-12-14 07:51:16

JS 技巧虛值

2021-07-05 05:34:10

Typescript語言開發

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技巧數組

2017-10-16 13:30:28

windows 10技巧輸入法

2011-05-10 17:38:35

DBA面試

2020-04-28 14:05:53

CSS網頁開發

2021-05-12 10:48:02

蘋果技巧功能

2021-10-22 09:41:26

橋接模式設計

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技術棧公眾號

主站蜘蛛池模板: 国产精品久久久久久福利一牛影视 | 色必久久 | 国产精品久久久精品 | 中文字幕亚洲欧美日韩在线不卡 | 91一区二区三区 | 国产精品成人69xxx免费视频 | 日韩精品一区二区三区四区视频 | 久久久精品一区二区三区 | 美女福利网站 | 免费国产视频在线观看 | 97精品久久| 日韩精品一区二区三区免费视频 | 日日操视频 | 情侣av| 久久久久久国产精品免费免费男同 | 看一级毛片| 日韩一区二区三区视频 | 精品中文在线 | 天天看天天干 | 在线观看黄色大片 | 可以免费观看的av | 日韩一区二区在线看 | 亚洲国产成人精品久久久国产成人一区 | 伊人久久精品一区二区三区 | 国产成年人视频 | 91超碰在线观看 | 欧美一区二区成人 | 亚洲免费人成在线视频观看 | 欧美一a一片一级一片 | 久久久久精| 欧美久久久久久 | 色狠狠一区 | 国产伦精品一区二区三区高清 | 91九色麻豆 | 国产精品爱久久久久久久 | 久久蜜桃精品 | 亚洲精品99 | 久久精品亚洲精品国产欧美 | av高清毛片 | 国产视频在线观看一区二区三区 | 婷婷色在线播放 |