vue使用clipboard.js实现点击复制功能

本文详细介绍了如何在Vue项目中引入并使用Clipboard库,实现文本复制功能。包括安装引用、全局注册、组件内使用及注意事项,如避免重复点击引发的bug。

1、安装引用

npm install clipboard --save

2、在main.js全局注册

import clipboard from 'clipboard'

// 注册到vue原型上
Vue.prototype.clipboard = clipboard

3、在要使用的vue组件中引用如下,我在copy方法中加了一个3s的延时是因为,提示用户复制成功的弹窗默认展示3s,防止用户多次点击,一定一定要在成功后销毁clipboard实例,否则会出现随着点击次数增加,弹窗数增加的bug

<template>
  <div>
    <p>{{wechat}}</p>
    <button class="cobyOrderSn" data-clipboard-action="copy" :data-clipboard-text="wechat" @click="copy" :disabled="disabled">复制</button>
  </div>
</template>
<script>
  export default {
  
    data () {
      return {
        disabled: false,
        wechat:'这是复制的内容'
      }
    },
    methods: {
    
      // 复制功能
	    copy () {
	    
	      const _this = this
	      var clipboard = new this.clipboard('.cobyOrderSn')
	      clipboard.on('success', function (val) {
	        _this.disabled = true
	        setTimeout(() => {
	          _this.disabled = false
	          // 销毁实例防止多次触发
	          clipboard.destroy()
	        }, 3000)
	        _this.$message({
	          message: '复制成功',
	          type: 'success'
	        })
	      })
	      clipboard.on('error', function () {
	        _this.$message.error('复制失败,请手动复制')
	      })
	    }
	    
    }
  }
</script>
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值