元件
在 v5.0 版本中,我們引入了一個新的套件 @vueuse/components
,提供可組合函式的無渲染元件版本。
安裝
bash
npm i @vueuse/core @vueuse/components
用法
例如 onClickOutside
,不再需要綁定元件 ref 以供函式使用
vue
<script setup>
import { onClickOutside } from '@vueuse/core'
import { useTemplateRef } from 'vue'
const el = useTemplateRef('el')
function close() {
/* ... */
}
onClickOutside(el, close)
</script>
<template>
<div ref="el">
Click Outside of Me
</div>
</template>
現在我們可以使用無渲染元件,綁定會自動完成
vue
<script setup>
import { OnClickOutside } from '@vueuse/components'
function close() {
/* ... */
}
</script>
<template>
<OnClickOutside @trigger="close">
<div>
Click Outside of Me
</div>
</OnClickOutside>
</template>
返回值
您可以使用 v-slot
存取返回值
vue
<template>
<UseMouse v-slot="{ x, y }">
x: {{ x }}
y: {{ y }}
</UseMouse>
</template>
vue
<template>
<UseDark v-slot="{ isDark, toggleDark }">
<button @click="toggleDark()">
Is Dark: {{ isDark }}
</button>
</UseDark>
</template>
有關元件樣式的詳細用法,請參閱每個函式的文檔。