Vue 剪贴板事件怎么实现一键复制文本到剪贴板功能

老丽酱_8700

老丽酱_8700

2026-10-21

922人浏览

原创

推荐使用原生 navigator.clipboard.writetext() api,它简洁安全、无需第三方库,兼容chrome 66+、firefox 63+、edge 79+、safari 13.1+;需在用户手势中调用,配合try/catch处理异常,并可添加复制状态反馈提升体验。

vue 剪贴板事件怎么实现一键复制文本到剪贴板功能

Vue 中实现一键复制文本到剪贴板,推荐使用原生 navigator.clipboard.writeText() API,它简洁、安全、无需第三方库,且兼容主流现代浏览器(Chrome 66+、Firefox 63+、Edge 79+、Safari 13.1+)。

基础用法:绑定按钮点击触发复制

在 Vue 组件中,直接调用 Clipboard API 即可。注意需在用户手势(如 click)中调用,否则会被浏览器拒绝:

  • 定义要复制的文本(可以是 data 属性、计算属性或 prop)
  • 在方法中调用 navigator.clipboard.writeText(text)
  • 用 try/catch 捕获权限拒绝或写入失败(如页面非安全上下文、用户禁用剪贴板权限)

示例(Vue 3 Composition API):



<script setup><br> const textToCopy = 'https://example.com/share?id=123'<br> <br> const copyText = async () => {<br> try {<br> await navigator.clipboard.writeText(textToCopy)<br> console.log('复制成功')<br> } catch (err) {<br> console.error('复制失败:', err)<br> }<br> }<br> </script>

增强体验:添加复制状态反馈

用户点击后应有明确反馈,比如按钮文字临时变为“已复制”,2 秒后恢复:

  • 用一个响应式变量(如 copied)控制按钮显示状态
  • 复制成功后设为 true,用 setTimeout 自动重置
  • 同时禁用按钮短暂时间,避免连续点击

示例片段:

vue-composition-api-best-practices
vue-composition-api-best-practices

Vue 3 组合式 API 与

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Vue 教程
Vue 教程

共42课时 | 17.2万人学习

国外Web开发全栈课程全集
国外Web开发全栈课程全集

共12课时 | 1.4万人学习

Vue.js 微实战--十天技能课堂
Vue.js 微实战--十天技能课堂

共18课时 | 1.7万人学习