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

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>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值