vue中js实现点击复制文本到剪贴板的3种方案

 更新时间:2023年09月05日 11:01:04   作者:星月前端  
今天遇到一个复制粘贴的需求,研究之后发现太简单了,这篇文章主要给大家介绍了关于vue中js实现点击复制文本到剪贴板的3种方案,文中通过代码介绍的非常详细,需要的朋友可以参考下

vue中js实现点击复制文本到剪贴板

因为在网上找了一些很杂乱 不适用 所以自己写一篇记录分享一下vue中js实现点击复制文本到剪贴板-三种方案

效果:

方案一:使用原生API(clipboard)

首先,我们需要安装clipboard库,它是一个轻量级的JavaScript库,用于复制/粘贴文本到剪贴板。

命令行运行npm install clipboard --save进行安装。

 npm install clipboard --save

使用该库实现代码如下:

<template>
  <div>
    <button @click="copyText">复制文本</button>
  </div>
</template>
<script>
import clipboard from 'clipboard';
export default {
  methods: {
    copyText() {
      let text = 'Hello World';
      clipboard.writeText(text);
      alert('已复制到剪贴板!');
    }
  }
}
</script>

方案二:使用v-copy指令

我们可以使用vue指令,使元素支持复制文本到剪贴板。

<template>
  <div>
    <button v-copy="text">复制文本</button>
  </div>
</template>
<script>
export default {
  data() {
    return {
      text: 'Hello World'
    }
  }
}
</script>
// 注册指令
Vue.directive('copy', {
  bind: function(el, binding) {
    el.$copy = function() {
      const textarea = document.createElement('textarea');
      textarea.value = binding.value;
      document.body.appendChild(textarea);
      textarea.select();
      document.execCommand('Copy');
      document.body.removeChild(textarea);
    }
    el.addEventListener('click', el.$copy);
  },
  unbind: function(el) {
    el.removeEventListener('click', el.$copy);
  }
});

方案三:使用clipboard.js库

clipboard.js库是一个现成的插件,可以通过安装运用它来实现复制文本到剪贴板的功能。

命令行运行 npm install clipboard --save 进行安装。

npm install clipboard --save 

使用clipboard.js实现代码如下:

<template>
  <div>
    <button class="copy-btn" data-clipboard-text="Hello World">复制文本</button>
  </div>
</template>
<script>
import ClipboardJS from 'clipboard';
export default {
  mounted() {
    new ClipboardJS('.copy-btn');
  }
}
</script>

方案三:使用clipboard.js库(vue3版)

安装 clipboard.js 库

可以使用 npm 或 yarn 安装 clipboard.js,命令如下:

npm i clipboard
# 或者
yarn add clipboard

完整代码如下:

<template>
  <button class="copy-btn">复制</button>
</template>
<script setup>
import { onMounted, ref } from 'vue'
import ClipboardJS from 'clipboard'
const clipboardText = ref('hello world')
const copyText = () => {
  const clipboard = new ClipboardJS('.copy-btn', {
    text() {
      return clipboardText.value
    }
  })
  clipboard.on('success', () => {
    console.log('复制成功')
  })
  clipboard.on('error', () => {
    console.log('复制失败')
  })
}
onMounted(() => {
  copyText()
})
</script>

以上三种方案,都可以实现复制文本到剪贴板的功能,具体应用中,可根据实际情景选择适合自己的方案。

总结

到此这篇关于vue中js实现点击复制文本到剪贴板的3种方案的文章就介绍到这了,更多相关vue js点击复制文本到剪贴板内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue中data里面的数据相互使用方式

    vue中data里面的数据相互使用方式

    这篇文章主要介绍了vue中data里面的数据相互使用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • vue3 Vite 进阶rollup命令行使用详解

    vue3 Vite 进阶rollup命令行使用详解

    这篇文章主要介绍了vue3 Vite 进阶rollup命令行使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • vuex存储数组(新建,增,删,更新)并存入localstorage定时删除功能实现

    vuex存储数组(新建,增,删,更新)并存入localstorage定时删除功能实现

    这篇文章主要介绍了vuex存储数组(新建,增,删,更新),并存入localstorage定时删除,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-04-04
  • Vue路由参数的传递与获取方式详细介绍

    Vue路由参数的传递与获取方式详细介绍

    顾名思义,vue路由传参是指嵌套路由时父路由向子路由传递参数,否则操作无效。传参方式可以划分为params传参和query传参,params传参又可以分为url中显示参数和不显示参数两种方式。具体区分和使用后续分析
    2022-09-09
  • vue element项目引入icon图标的方法

    vue element项目引入icon图标的方法

    这篇文章主要介绍了vue element项目引入icon图标的方法,本文图文并茂给大家介绍的非常详细,需要的朋友可以参考下
    2018-06-06
  • vue实现移动端拖拽悬浮按钮

    vue实现移动端拖拽悬浮按钮

    这篇文章主要为大家详细介绍了vue实现移动端拖拽悬浮按钮,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • 解决vue eslint开发严格模式警告错误的问题

    解决vue eslint开发严格模式警告错误的问题

    这篇文章主要介绍了解决vue eslint开发严格模式警告错误的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • vue修改数据的时候,表单值回显不正确问题及解决

    vue修改数据的时候,表单值回显不正确问题及解决

    这篇文章主要介绍了vue修改数据的时候,表单值回显不正确的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • Vue数据更新页面却没有更新的几种情况以及解决方法

    Vue数据更新页面却没有更新的几种情况以及解决方法

    我们在开发过程中会碰到数据更新,但是页面却没有更新的情况,下面这篇文章主要给大家介绍了关于Vue数据更新页面却没有更新的几种情况以及解决方法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-06-06
  • vuex刷新页面丢失登录token信息的解决方案

    vuex刷新页面丢失登录token信息的解决方案

    本文主要介绍了vuex刷新页面丢失登录token信息的解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07

最新评论