Skip to content

v-copy 指令

介绍

v-copy 指令用于实现对组件内容的复制功能。当用户点击带有该指令的元素时,会自动复制元素的文本内容到剪贴板,并在复制成功或失败时提供相应的反馈。

使用方法

v-copy 指令添加到需要支持复制功能的元素上:

世界上有太多孤独的人,害怕先踏出第一步。———《绿皮书》

点击上方文本区域即可复制文本内容

查看代码
vue
<script setup lang="ts">
import { ref } from 'vue'
import { vCopy } from '@cp-vuedir/core'

const text = ref('世界上有太多孤独的人,害怕先踏出第一步。———《绿皮书》')
</script>

<template>
  <div class="demo-container">
    <p v-copy class="copy-text" title="点击复制">
      {{ text }}
    </p>
    <p class="demo-tip">点击上方文本区域即可复制文本内容</p>
  </div>
</template>

<style scoped>
.demo-container {
  padding: 1rem;
  border: 1px solid var(--vp-c-divider-light);
  border-radius: 8px;
  background-color: var(--vp-c-bg-soft);
}

.copy-text {
  padding: 1rem;
  background-color: var(--vp-c-bg);
  color: var(--vp-c-text-1);
  border: 1px solid var(--vp-c-divider);
  border-radius: 4px;
  margin-bottom: 1rem;
  text-align: center;
  transition: all 0.3s ease;
  cursor: pointer;
}

.copy-text:hover {
  background-color: var(--vp-c-bg-soft);
  border-color: var(--vp-c-brand);
}

.demo-tip {
  margin: 0;
  color: var(--vp-c-text-2);
  font-size: 0.9rem;
}
</style>

注意事项

复制状态反馈

  • 当复制成功时,会在元素上显示一个绿色的提示信息。
  • 当复制失败时,会在元素上显示一个红色的提示信息。

注意浏览器兼容

需要浏览器支持 Clipboard API