剪切版(Clipboard)的使用
Vueuse
<script setup lang="ts">
import { useClipboard } from '@vueuse/core';
const source = ref('Hello');
const { text, copy, copied, isSupported } = useClipboard({ source });
</script>
<template>
<div v-if="isSupported">
<button @click="copy(source)">
<!-- by default, `copied` will be reset in 1.5s -->
<span v-if="!copied">Copy</span>
<span v-else>Copied!</span>
</button>
<p>
Current copied: <code>{{ text || 'none' }}</code>
</p>
</div>
<p v-else>Your browser does not support Clipboard API</p>
</template>
组件使用
该函数还通过包提供了无渲染组件版本@vueuse/components。详细了解用法。
<template>
<UseClipboard v-slot="{ copy, copied }" source="copy me">
<button @click="copy()">
{{ copied ? 'Copied' : 'Copy' }}
</button>
</UseClipboard>
</template>