vue通过插件clipboard复制文本

1、下载

npm install clipboard --save 

2、在需要复制的组件中引入

import Clipboard from 'clipboard'

  也可以在main.js中引入:

import Clipboard from 'clipboard'
Vue.prototype.$clipboard = Clipboard;

  此时在使用的时候 Clipboard 需改为 this.$clipboard

let clipboard = new this.$clipboard('.copy_btn')

3、通过属性 data-clipboard-text 绑定需要复制的值,设置一个类名供插件获取dom,通过点击事件触发回调

    <input type="text" v-model="message" />
    <el-button class="copy_btn" :data-clipboard-text="message" @click="handleCopy">点击复制</el-button>
复制代码
    handleCopy() {
      let clipboard = new Clipboard('.copy_btn')
      clipboard.on('success', (e) => {
        this.$message.success('复制成功')
        clipboard.destroy() // 释放内存
      })
      clipboard.on('error', (e) => {
        this.$message.error('不支持复制')
        clipboard.destroy() // 释放内存
      })
    }
复制代码

完整代码:

复制代码
<template>
  <div>
    <input type="text" v-model="message" />
    <el-button class="copy_btn" :data-clipboard-text="message" @click="handleCopy">点击复制</el-button>
  </div>
</template>
<script>
import Clipboard from 'clipboard'
export default {
  data() {
    return {
      message: '我是可以复制的内容,请点击复制'
    }
  },
  methods: {
    handleCopy() {
      let clipboard = new Clipboard('.copy_btn')
      clipboard.on('success', (e) => {
        this.$message.success('复制成功')
        clipboard.destroy() // 释放内存
      })
      clipboard.on('error', (e) => {
        this.$message.error('不支持复制')
        clipboard.destroy() // 释放内存
      })
    }
  }
}
</script>
View Code
复制代码

 

posted @   吴小明-  阅读(397)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· 地球OL攻略 —— 某应届生求职总结
历史上的今天:
2020-06-02 pdf预览----vue-pdf、pdfjs-dist、pdfjs插件
点击右上角即可分享
微信分享提示