天天看點

web前端開發必備,Vue事件修飾符全通曉

Vue.js是一種流行的前端架構,用于建立互動式UI。在Vue中,事件修飾符是一種技術,可以增強綁定到DOM事件上的行為。修飾符是指以點号(.)分隔的特殊字尾,通過将修飾符添加到事件名稱中,可以修改事件觸發的方式。在本文中,我們将了解Vue中常用的事件修飾符及其使用執行個體。

web前端開發必備,Vue事件修飾符全通曉

Vue事件修飾符

1. .stop

.stop是Vue中最常用的事件修飾符之一。它會阻止事件進一步傳播到DOM樹。例如:

<template>
<div @click="outerHandler">
<div @click.stop="innerHandler"></div>
</div>
</template>
<script>
export default {
methods: {
innerHandler() {
// 在此處理部點選事件
},
outerHandler() {
// 在此處理外部點選事件
},
},
};
</script>           

在上面的代碼中,當使用者單擊`<div @click.stop="innerHandler">`時,事件将立即停止傳播,不再執行`outerHandler`方法。相反,它隻會執行`innerHandler`方法。

2、 .prevent

防止預設操作很重要,有時候特别需要這個方式避免浏覽器自動跳轉到另一個頁面。`.prevent`事件修飾符用于防止元素的預設行為。例如:

<template>
<form @submit.prevent="submitHandler">
<!-- form表單内容 -->
</form>
</template>
<script>
export default {
methods: {
submitHandler() {
// 此處處理送出表單的邏輯
},
},
};
</script>           

當使用者單擊“送出”按鈕時,`.prevent`修飾符将阻止預設行為。這意味着表單不會自動送出到伺服器,而是等待Vue處理送出。

3、.capture

`.capture`事件修飾符會将事件處理推回DOM樹的頂部,從外層開始一次執行。例如

<template>
<div @click.capture="outerHandler">
<div @click="innerHandler"></div>
</div>
</template>
<script>
export default {
methods: {
innerHandler() // 在此處處理内部點選事件
},
outerHandler() {
// 在此處處理外部點選事件
},
},
};
</script>           

在上面的代碼中,`.capture`先執行外層元素的`outerHandler`方法,再執行内層元素的`innerHandler`方法。和上文的**.stop**不同在于,`.stop`跳過未執行的父級處理程式,直接停止事件傳播。

4、.self

`.self`事件修飾符僅在事件發生在目标對象時觸發處理事件。例如:

<template>
<div @click.self="clickHandler">
<!-- div内容 -->
</div>
</template>
<script>
export default {
methods: {
clickHandler() {
// 在此處處理點選事件
},
},
};
</script>           

在上面的代碼中,隻有當使用者單擊`<div>`本身,才會觸發事件處理程式。如果使用者單擊`<div>`的子元素,則不會執行事件處理程式。

5、.once

`.once`事件修飾符讓句柄隻在元素觸發時執行一次。例如:

<template>
<button @click.once="clickHandler">點選我</button>
</template>
<script>
export default {
methods: {
clickHandler() {
// 在此處處理點選事件
},
},
};
</script>           

在上面的代碼中,當使用者單擊按鈕後,Vue将隻調用一次`clickHandler`方法。這對于避免重複送出表單等情況非常有用。

綜上所述,事件修飾符可以幫助web前端開發人員更好地控制DOM事件的行為,并提供額外的可讀性和可靠性。學習并熟練使用它們可以幫助您減少代碼的備援,進而使Vue應用更加高效和于維護。

繼續閱讀