Loading source
Pulling the file list, source metadata, and syntax-aware rendering for this listing.
Source from repo
Apply VueUse composables in Vue 3/Nuxt projects to replace custom implementations with battle-tested utilities.
Files
Skill
Size
Entrypoint
Format
Open file
Syntax-highlighted preview of this file as included in the skill package.
references/useElementHover.md
1---2category: Sensors3---45# useElementHover67Reactive element's hover state.89## Usage1011```vue12<script setup lang="ts">13import { useElementHover } from '@vueuse/core'14import { useTemplateRef } from 'vue'1516const myHoverableElement = useTemplateRef('myHoverableElement')17const isHovered = useElementHover(myHoverableElement)18</script>1920<template>21<button ref="myHoverableElement">22{{ isHovered }}23</button>24</template>25```2627## Directive Usage2829```vue30<script setup lang="ts">31import { vElementHover } from '@vueuse/components'32import { shallowRef } from 'vue'3334const isHovered = shallowRef(false)35function onHover(state: boolean) {36isHovered.value = state37}38</script>3940<template>41<button v-element-hover="onHover">42{{ isHovered ? 'Thank you!' : 'Hover me' }}43</button>44</template>45```4647You can also provide hover options:4849```vue50<script setup lang="ts">51import { vElementHover } from '@vueuse/components'52import { shallowRef } from 'vue'5354const isHovered = shallowRef(false)55function onHover(hovered: boolean) {56isHovered.value = hovered57}58</script>5960<template>61<button v-element-hover="[onHover, { delayEnter: 1000 }]">62<span>{{ isHovered ? 'Thank you!' : 'Hover me' }}</span>63</button>64</template>65```6667## Type Declarations6869```ts70export interface UseElementHoverOptions extends ConfigurableWindow {71delayEnter?: number72delayLeave?: number73triggerOnRemoval?: boolean74}75export declare function useElementHover(76el: MaybeRefOrGetter<EventTarget | null | undefined>,77options?: UseElementHoverOptions,78): ShallowRef<boolean>79```80