亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Vue3 之 Vue 事件處理指南

 更新時(shí)間:2021年09月13日 09:43:58   作者:前端小智  
Vue事件處理是每個(gè)Vue項(xiàng)目的必要方面。 它用于捕獲用戶(hù)輸入,共享數(shù)據(jù)以及許多其他創(chuàng)造性方式。在本文中,會(huì)介紹基礎(chǔ)知識(shí),并提供一些用于處理事件的代碼示例。需要的小伙伴可以參考下面文章的具體內(nèi)容

一、基本事件處理

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

// v-on 指令
<div v-on:click='handleClick' />

// OR

<div @click='handleClick' />

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

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

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

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

Options API 中,我們可以簡(jiǎn)單地調(diào)用this.$emit(eventName, payload) ,示例如下:

export default {
  methods: {
    handleUpdate: () => {
      this.$emit('update', 'Hello World')
    }
  }
}


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

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

export default {
  setup (props, context) {
    const handleUpdate = () => {
      context.emit('update', 'Hello World')
    }

    return { handleUpdate }
  } 
}

當(dāng)然,我在項(xiàng)目中經(jīng)常使用解構(gòu)的方式來(lái)使用:

export default {
  setup (props, { emit }) {
    const handleUpdate = () => {
      emit('update', 'Hello World')
    }

    return { handleUpdate }
  } 
}

完美!

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

<HelloWorld @update='inputUpdated'/>


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

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

第一種:是在模板中使用$event訪問(wèn)傳遞的值。

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


第二種:使用方法來(lái)處理事件,則傳遞的值將作為第一個(gè)參數(shù)自動(dòng)傳遞給我們的方法。

<HelloWorld @update='inputUpdated'/>

// ...

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

三、鼠標(biāo)修飾符

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

<div 
  @mousedown='handleEvent'
  @mouseup='handleEvent'
  @click='handleEvent'
  @dblclick='handleEvent'
  @mousemove='handleEvent'
  @mouseover='handleEvent'
  @mousewheel='handleEvent'
  @mouseout='handleEvent'
>
Interact with Me!
</div>


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

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

四、鍵盤(pán)修飾符

我們可以聽(tīng)三個(gè)DOM鍵盤(pán)事件:

<input
   type='text'
   placeholder='Type something'
   @keypress='handleKeyPressed'
   @keydown='handleKeyDown'
   @keyup='handleKeyUp'
/>


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

  1. keycodes
  2. Vue具有某些鍵的別名(enter, tab, delete, esc, space, up, down, left, right)
<!-- Trigger even when enter is released -->
<input
   type='text'
   placeholder='Type something'
   @keyup.enter='handleEnter'
/>

<!-- OR -->
<input
   type='text'
   placeholder='Type something'
   @keyup.13='handleEnter'
/>

五、系統(tǒng)修飾符

對(duì)于某些項(xiàng)目,我們可能只想在用戶(hù)按下修飾鍵的情況下觸發(fā)事件。 修飾鍵類(lèi)似于Command或shift。

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

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

這對(duì)于在Vue應(yīng)用程序中創(chuàng)建諸如自定義鍵盤(pán)快捷鍵之類(lèi)的功能非常有用。

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


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

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

六、事件修飾符

對(duì)于所有DOM事件,我們可以使用一些修飾符來(lái)更改其運(yùn)行方式。 無(wú)論是停止傳播還是阻止默認(rèn)操作,Vue都有兩個(gè)內(nèi)置的DOM事件修飾符。

<!-- 阻止默認(rèn)行為 -->
<form @submit.prevent>

<!-- 阻止冒泡 -->
<form @submit.stop='submitForm'>

<!-- 阻止默認(rèn)行為和冒泡 -->
<form @submit.stop.prevent='submitForm'>

<!-- 防止事件被多次觸發(fā) -->
<div @close.once='handleClose'> 

代碼部署后可能存在的BUG沒(méi)法實(shí)時(shí)知道,事后為了解決這些BUG,花了大量的時(shí)間進(jìn)行l(wèi)og 調(diào)試,這邊順便給大家推薦一個(gè)好用的BUG監(jiān)控工具Fundebug。

到此這篇關(guān)于Vue3 之 Vue 事件處理指南的文章就介紹到這了,更多相關(guān)Vue 事件處理指南內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • bootstrap vue.js實(shí)現(xiàn)tab效果

    bootstrap vue.js實(shí)現(xiàn)tab效果

    這篇文章主要為大家詳細(xì)介紹了bootstrap vue.js實(shí)現(xiàn)tab效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • vue項(xiàng)目前端錯(cuò)誤收集之sentry教程詳解

    vue項(xiàng)目前端錯(cuò)誤收集之sentry教程詳解

    Sentry 是一個(gè)開(kāi)源的錯(cuò)誤追蹤工具,可以幫助開(kāi)發(fā)人員實(shí)時(shí)監(jiān)控和修復(fù)系統(tǒng)中的錯(cuò)誤。這篇文章主要介紹了vue項(xiàng)目前端錯(cuò)誤收集之sentry,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-05-05
  • vue中集成省市區(qū)街四級(jí)地址組件的實(shí)現(xiàn)過(guò)程

    vue中集成省市區(qū)街四級(jí)地址組件的實(shí)現(xiàn)過(guò)程

    我們?cè)陂_(kāi)發(fā)中常會(huì)遇到選擇地址的需求,有時(shí)候只需要選擇省就可以,有時(shí)候則需要選擇到市、縣,以至于鄉(xiāng)鎮(zhèn),甚至哪個(gè)村都有可能,下面這篇文章主要給大家介紹了關(guān)于vue中集成省市區(qū)街四級(jí)地址組件的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • vue中echarts圖表大小適應(yīng)窗口大小且不需要刷新案例

    vue中echarts圖表大小適應(yīng)窗口大小且不需要刷新案例

    這篇文章主要介紹了vue中echarts圖表大小適應(yīng)窗口大小且不需要刷新案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-07-07
  • vue中marker被識(shí)別點(diǎn)擊的過(guò)程場(chǎng)景分析

    vue中marker被識(shí)別點(diǎn)擊的過(guò)程場(chǎng)景分析

    這篇文章主要介紹了vue中marker被識(shí)別點(diǎn)擊的過(guò)程場(chǎng)景分析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2023-11-11
  • vue中簡(jiǎn)單彈框dialog的實(shí)現(xiàn)方法

    vue中簡(jiǎn)單彈框dialog的實(shí)現(xiàn)方法

    下面小編就為大家分享一篇vue中簡(jiǎn)單彈框dialog的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-02-02
  • Vue.js2.0中的變化小結(jié)

    Vue.js2.0中的變化小結(jié)

    最近小編在學(xué)習(xí)vue.js ,發(fā)現(xiàn)里面有好多好玩的東東,今天小編給大家分享Vue.js2.0中的變化,小編會(huì)在日后給大家持續(xù)更新的,感興趣的朋友參考下吧
    2017-10-10
  • 基于vue3開(kāi)發(fā)mobile-table適用于移動(dòng)端表格

    基于vue3開(kāi)發(fā)mobile-table適用于移動(dòng)端表格

    這篇文章主要給大家介紹了關(guān)于如何基于vue3開(kāi)發(fā)mobile-table適用于移動(dòng)端表格的相關(guān)資料,需要的朋友可以參考下
    2024-03-03
  • bing Map 在vue項(xiàng)目中的使用詳解

    bing Map 在vue項(xiàng)目中的使用詳解

    這篇文章主要介紹了bing Map 在vue項(xiàng)目中的使用,需要的朋友可以參考下
    2018-04-04
  • 從零開(kāi)始搭建vue移動(dòng)端項(xiàng)目到上線(xiàn)的步驟

    從零開(kāi)始搭建vue移動(dòng)端項(xiàng)目到上線(xiàn)的步驟

    這篇文章主要介紹了從零開(kāi)始搭建vue移動(dòng)端項(xiàng)目到上線(xiàn)的步驟,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-10-10

最新評(píng)論