Vue中常用的鼠標(biāo)移入移出事件詳解
Vue中常用的鼠標(biāo)移入移出事件
Vue中常用的鼠標(biāo)移入移出事件有兩種:@mouseenter
和@mouseleave
。
@mouseenter
事件會在鼠標(biāo)移入元素時觸發(fā),而@mouseleave
事件會在鼠標(biāo)移出元素時觸發(fā)。這兩個事件可以用于實現(xiàn)一些交互效果,例如鼠標(biāo)移入時顯示某些內(nèi)容,鼠標(biāo)移出時隱藏。
在Vue模板中,可以使用這兩個事件來綁定方法,例如:
<template> <div @mouseenter="handleMouseEnter" @mouseleave="handleMouseLeave">鼠標(biāo)移入移出</div> </template>
在Vue組件的methods
中定義對應(yīng)的方法:
export default { methods: { handleMouseEnter() { console.log('鼠標(biāo)移入'); }, handleMouseLeave() { console.log('鼠標(biāo)移出'); } } }
這樣當(dāng)鼠標(biāo)移入或移出該元素時,對應(yīng)的方法就會被調(diào)用。
@mouseleave事件來代替mouseout事件
mouseout
是JavaScript原生的鼠標(biāo)移出事件,與Vue中的@mouseleave
事件類似,但有一些細(xì)微的差別。
mouseout
事件會在鼠標(biāo)移出元素時觸發(fā),但如果鼠標(biāo)移入該元素的子元素,也會觸發(fā)一次mouseout
事件。這樣可能會導(dǎo)致一些意外的行為,例如當(dāng)鼠標(biāo)從元素上移入其子元素時,可能會觸發(fā)元素的mouseout
事件,從而導(dǎo)致一些不必要的操作。
因此在Vue中,建議使用
@mouseleave
事件來代替mouseout
事件。
@mouseenter事件來代替mouseover事件
mouseover
是JavaScript原生的鼠標(biāo)移入事件,與Vue中的@mouseenter
事件類似,但有一些細(xì)微的差別。
mouseover
事件會在鼠標(biāo)移入元素時觸發(fā),但如果鼠標(biāo)移入該元素的子元素,不會觸發(fā)一次mouseover
事件。這樣可以避免一些意外的行為,例如當(dāng)鼠標(biāo)從元素的子元素上移出時,不會觸發(fā)元素的mouseover
事件,從而避免一些不必要的操作。
因此在Vue中,建議使用
@mouseenter
事件來代替mouseover
事件。
附:兩對鼠標(biāo)事件的區(qū)別
其中,mouseover觸發(fā)優(yōu)先級高于mouseenter,mouseout觸發(fā)優(yōu)先級高于mouseleave
1、mouseover 和 mouseout
不論鼠標(biāo)指針穿過被選元素或其子元素,都會觸發(fā) mouseover
不論鼠標(biāo)指針離開被選元素還是任何子元素,都會觸發(fā) mouseout 事件。
是根據(jù)鼠標(biāo)事件的target進(jìn)行觸發(fā)的,是一種精確觸發(fā)。當(dāng)為某一組件(如div)設(shè)置這兩個事件時,當(dāng)事件的target是該組件時,就會觸發(fā)mouseover,但是當(dāng)鼠標(biāo)劃到該組件的子組件上時,因為target改變了,所以就觸發(fā)了 mouseout 事件,這往往就會造成頁面元素的閃爍,反復(fù)觸發(fā)移入移出事件。
2、mouseenter 和 mouseleave
只有在鼠標(biāo)指針從元素外穿入被選元素(到元素內(nèi))時,才會觸發(fā) mouseenter 事件。
只有在鼠標(biāo)指針從元素內(nèi)穿出被選元素(到元素外)時,才會觸發(fā) mouseleave 事件。
mouseenter 和 mouseleave是根據(jù)組件在頁面的范圍(坐標(biāo))進(jìn)行觸發(fā)的。不管組件中是否有子組件,只要鼠標(biāo)進(jìn)入到組件的范圍內(nèi),就可以觸發(fā)mouseenter事件,離開范圍,則觸發(fā)mouseleave事件。
總結(jié)
到此這篇關(guān)于Vue中常用的鼠標(biāo)移入移出事件的文章就介紹到這了,更多相關(guān)Vue鼠標(biāo)移入移出事件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
在Vue3中實現(xiàn)四種全局狀態(tài)數(shù)據(jù)的統(tǒng)一管理的方法
在開發(fā)中,通常遇到四種全局狀態(tài)數(shù)據(jù):異步數(shù)據(jù)、同步數(shù)據(jù),傳統(tǒng)的Vue3使用不同機(jī)制處理這些數(shù)據(jù),而Zova框架通過Model機(jī)制來統(tǒng)一管理,簡化了數(shù)據(jù)處理流程,提高了代碼的可維護(hù)性,本文介紹在Vue3中實現(xiàn)四種全局狀態(tài)數(shù)據(jù)的統(tǒng)一管理的方法,感興趣的朋友一起看看吧2024-10-10uniapp微信小程序webview和h5數(shù)據(jù)通信代碼示例
這篇文章主要介紹了uniapp微信小程序webview和h5數(shù)據(jù)通信的相關(guān)資料,文章還列出了項目的結(jié)構(gòu),包括微信小程序和h5端的主要文件和組件,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-01-01element中Select選擇器實現(xiàn)自定義顯示內(nèi)容
在我們很多前端業(yè)務(wù)開發(fā)中,往往為了方便,都需要自定義一些用戶組件,本文主要介紹了element中Select選擇器實現(xiàn)自定義顯示內(nèi)容,感興趣的可以了解一下2023-12-12詳解vue-cil和webpack中本地靜態(tài)圖片的路徑問題解決方案
這篇文章主要介紹了詳解vue-cil和webpack中本地靜態(tài)圖片的路徑問題解決方案,非常具有實用價值,需要的朋友可以參考下2017-09-09解析vue?3.0?使用axios庫發(fā)起?post?get?的配置過程
get post 請求開發(fā)中最普通最常見的請求方式但是在vue中如何實現(xiàn)呢 這里記錄一下配置過程,對vue?使用axios發(fā)起?post?get配置過程感興趣的朋友一起看看吧2022-05-05Vue中的函數(shù)同步執(zhí)行導(dǎo)致的數(shù)據(jù)獲取失敗問題處理辦法
Vue中的mount中有兩個函數(shù),第一個函數(shù)執(zhí)行完后給data中的userInfo賦值,但是第二個函數(shù)獲取userInfo時是空值,這種情況可能是因為第二個函數(shù)在獲取 userInfo 時發(fā)生在第一個函數(shù)執(zhí)行完之前,所以本文給大家介紹了Vue中的函數(shù)同步執(zhí)行導(dǎo)致的數(shù)據(jù)獲取失敗問題處理辦法2024-08-08vue實現(xiàn)錄音并轉(zhuǎn)文字功能包括PC端web手機(jī)端web(實現(xiàn)過程)
vue實現(xiàn)錄音并轉(zhuǎn)文字功能,包括PC端,手機(jī)端和企業(yè)微信自建應(yīng)用端,本文通過實例代碼介紹vue實現(xiàn)錄音并轉(zhuǎn)文字功能包括PC端web手機(jī)端web,感興趣的朋友跟隨小編一起看看吧2024-08-08