欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue鼠標(biāo)點(diǎn)擊事件和鍵盤事件舉例詳解

 更新時間:2024年01月03日 15:54:16   作者:編程阿牛  
在Vue框架中我們經(jīng)常需要綁定各種JS事件,如"點(diǎn)擊事件"、"鼠標(biāo)移動事件"、"鍵盤事件"等等,這篇文章主要給大家介紹了關(guān)于Vue鼠標(biāo)點(diǎn)擊事件和鍵盤事件的相關(guān)資料,需要的朋友可以參考下

Vue中的鼠標(biāo)點(diǎn)擊事件修飾符:

  • 1.prevent:阻止默認(rèn)事件(常用);
  • 2. stop:阻止事件冒泡(常用);
  • 3.once:事件只觸發(fā)一次(常用);
  • 4.capture:使用事件的捕獲模式;
  • 5.self:只有event.target是當(dāng)前操作的元素時才觸發(fā)事件;
  • 6.passive:事件的默認(rèn)行為立即執(zhí)行,無需等待事件回調(diào)執(zhí)行完畢;

vue的@click.prevent

@click.prevent 是 Vue 中的一個事件修飾符,用于阻止瀏覽器默認(rèn)行為和事件冒泡。

在 Vue 組件中,當(dāng)你使用 @click.prevent 修飾符時,Vue 會在觸發(fā) click 事件時調(diào)用事件處理程序,并且會使用 event.preventDefault() 方法阻止瀏覽器默認(rèn)行為。例如,當(dāng)你在一個鏈接上添加 @click.prevent 修飾符時,點(diǎn)擊該鏈接不會導(dǎo)致瀏覽器跳轉(zhuǎn)到鏈接的目標(biāo)頁面,而是只會調(diào)用事件處理程序。

此外,當(dāng)你使用 @click.prevent 修飾符時,Vue 還會使用 event.stopPropagation() 方法阻止事件冒泡。這意味著,當(dāng)你在一個具有嵌套結(jié)構(gòu)的組件中添加 @click.prevent 修飾符時,如果你點(diǎn)擊一個子組件,事件處理程序不會被傳遞到父組件中。只有當(dāng)你在具有該修飾符的元素上直接點(diǎn)擊時,才會觸發(fā)事件處理程序。

例如,如果你在一個表單提交按鈕上添加 @click.prevent 修飾符,點(diǎn)擊該按鈕不會導(dǎo)致表單提交,而只會調(diào)用事件處理程序。這對于需要在按鈕被點(diǎn)擊時進(jìn)行一些自定義邏輯或者異步提交表單的情況非常有用。

vue的@click.stop

在Vue中,可以使用@click.stop來阻止事件冒泡。

事件冒泡是指事件從嵌套元素中的最深處向外傳遞的過程。當(dāng)一個元素上觸發(fā)了事件,它會向上冒泡到其父元素,直到傳遞到文檔的根元素。這意味著在子元素上觸發(fā)的事件也會在其祖先元素上觸發(fā)。

如果你想阻止事件從子元素冒泡到父元素,可以在子元素上使用@click.stop指令。例如,下面的代碼將阻止child元素的click事件冒泡到parent元素:

<div @click="parent">
  <div @click.stop="child"></div>
</div>

在這個例子中,當(dāng)用戶點(diǎn)擊child元素時,parent方法不會被調(diào)用,因?yàn)?code>@click.stop阻止了事件冒泡到parent元素。

vue的@click.capture

@click.capture 是 Vue 中的一個事件修飾符,用于在觸發(fā)事件時捕獲所有的冒泡事件。

事件捕獲和事件冒泡是兩種不同的事件傳播方式。在事件捕獲階段,事件從頂層元素逐級向下傳遞到目標(biāo)元素;在事件冒泡階段,事件從目標(biāo)元素逐級向上傳遞到頂層元素。默認(rèn)情況下,Vue 組件中的事件處理程序只會在事件冒泡階段被調(diào)用。

當(dāng)你使用 @click.capture 修飾符時,Vue 會在事件捕獲階段調(diào)用事件處理程序,而不是在事件冒泡階段。這意味著事件處理程序?qū)⒃谧咏M件之前調(diào)用,而不是在子組件之后調(diào)用。

例如,如果你在一個包含多個子組件的組件上添加 @click.capture 修飾符,那么當(dāng)你點(diǎn)擊子組件時,事件處理程序?qū)⑹紫仍诟附M件中被調(diào)用,然后才會在子組件中被調(diào)用。

這個修飾符通常用于需要在父組件中攔截事件并進(jìn)行一些處理的情況,例如在組件外部點(diǎn)擊時關(guān)閉下拉菜單。

vue的@click.once

@click.once 是 Vue 中的一個事件修飾符,用于綁定一個只會觸發(fā)一次的點(diǎn)擊事件處理程序。

當(dāng)你在一個元素上添加 @click.once 修飾符時,Vue 會在該元素被點(diǎn)擊一次時調(diào)用事件處理程序,并立即將該修飾符從事件中刪除。這意味著,當(dāng)你再次點(diǎn)擊該元素時,不會再觸發(fā)事件處理程序。

例如,你可以在一個打開對話框的按鈕上添加 @click.once 修飾符,以確保對話框只會被打開一次。當(dāng)用戶再次點(diǎn)擊該按鈕時,不會再次打開對話框。

需要注意的是,@click.once 修飾符只會在綁定的元素上生效,如果該元素有子元素,并且你點(diǎn)擊了其中一個子元素,那么該子元素的點(diǎn)擊事件處理程序也會被觸發(fā)。如果你希望只在點(diǎn)擊該元素本身時觸發(fā)事件處理程序,可以使用 @click.self.once 修飾符。

vue的@click.self

@click.self 是 Vue 中的一個事件修飾符,用于綁定一個只有在點(diǎn)擊元素本身時才會觸發(fā)的點(diǎn)擊事件處理程序。

在 Vue 組件中,當(dāng)你使用 @click.self 修飾符時,Vue 會在觸發(fā) click 事件時調(diào)用事件處理程序,但是只有當(dāng)你直接點(diǎn)擊該元素本身時才會觸發(fā)。如果你點(diǎn)擊該元素的子元素,事件處理程序不會被觸發(fā)。

例如,當(dāng)你在一個具有嵌套結(jié)構(gòu)的組件中,需要在點(diǎn)擊組件本身時進(jìn)行一些自定義邏輯,而在點(diǎn)擊組件內(nèi)部的某個子元素時不進(jìn)行任何操作時,你可以使用 @click.self 修飾符。

需要注意的是,@click.self 修飾符只會在綁定的元素上生效,如果該元素有子元素,并且你點(diǎn)擊了其中一個子元素,那么該子元素的點(diǎn)擊事件處理程序也會被觸發(fā)。如果你希望只在點(diǎn)擊該元素本身時觸發(fā)事件處理程序,并且忽略子元素的點(diǎn)擊事件處理程序,可以使用 @click.prevent 和 @click.stop 修飾符。

vue的@click.passive

@click.passive 修飾符可以在 Vue 組件中用于優(yōu)化 click 事件的性能。下面是一個使用 @click.passive 修飾符的示例:

<template>
  <div @click="handleClick" @click.passive="handleClickPassive">Click me</div>
</template>

<script>
export default {
  methods: {
    handleClick() {
      console.log('Clicked!');
      // 阻止默認(rèn)行為
      event.preventDefault();
    },
    handleClickPassive() {
      console.log('Clicked (passive)!');
    }
  }
}
</script>

在這個示例中,當(dāng)你在 div 元素上點(diǎn)擊時,會觸發(fā)兩個事件處理程序:handleClick 和 handleClickPassivehandleClick 方法會調(diào)用 event.preventDefault() 方法阻止默認(rèn)行為,而 handleClickPassive 方法則使用了 @click.passive 修飾符告知瀏覽器該事件處理程序不會調(diào)用 event.preventDefault() 方法。

由于使用了 @click.passive 修飾符,瀏覽器可以在處理 click 事件時進(jìn)行一些性能優(yōu)化,從而提高性能和響應(yīng)速度。

 vue的鍵盤相應(yīng)事件

當(dāng)我們在 Vue.js 中處理鍵盤事件時,通常需要使用以下幾種鍵盤事件:

@keydown - 按下鍵盤上的任意一個鍵時觸發(fā)的事件。

<template>
  <div @keydown="onKeyDown"></div>
</template>

<script>
export default {
  methods: {
    onKeyDown(event) {
      console.log('KeyDown event:', event.key);
    }
  }
}
</script>

@keyup - 松開鍵盤上的任意一個鍵時觸發(fā)的事件。

<template>
  <div @keyup="onKeyUp"></div>
</template>

<script>
export default {
  methods: {
    onKeyUp(event) {
      console.log('KeyUp event:', event.key);
    }
  }
}
</script>

@keypress - 當(dāng)按下字符鍵時觸發(fā)的事件。

<template>
  <div @keypress="onKeyPress"></div>
</template>

<script>
export default {
  methods: {
    onKeyPress(event) {
      console.log('KeyPress event:', event.key);
    }
  }
}
</script>

@keydown.[key] - 當(dāng)按下特定鍵時觸發(fā)的事件,可以通過鍵名進(jìn)行綁定。

<template>
  <div @keydown.enter="onEnterKeyDown"></div>
</template>

<script>
export default {
  methods: {
    onEnterKeyDown() {
      console.log('Enter key is pressed!');
    }
  }
}
</script>

@keyup.[key] - 當(dāng)松開特定鍵時觸發(fā)的事件,可以通過鍵名進(jìn)行綁定。

<template>
  <div @keyup.enter="onEnterKeyUp"></div>
</template>

<script>
export default {
  methods: {
    onEnterKeyUp() {
      console.log('Enter key is released!');
    }
  }
}
</script>

@keydown.[key].prevent - 當(dāng)按下特定鍵時阻止默認(rèn)行為,可以通過 prevent 修飾符實(shí)現(xiàn)。

<template>
  <div @keydown.enter.prevent></div>
</template>

以上是常用的鍵盤事件,你可以根據(jù)實(shí)際需求進(jìn)行選擇和使用。在代碼中,我們可以通過 event 參數(shù)來獲取鍵盤事件的相關(guān)信息,如按下的鍵的名稱、keyCode 碼等等。通過鍵盤事件,我們可以實(shí)現(xiàn)一些常見的交互操作,例如:表單驗(yàn)證、搜索提示等等。

總結(jié)

到此這篇關(guān)于Vue鼠標(biāo)點(diǎn)擊事件和鍵盤事件的文章就介紹到這了,更多相關(guān)Vue鼠標(biāo)點(diǎn)擊事件和鍵盤事件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論