Vue——实现一键复制

  又遇到了一个新的需求——完成一键复制功能,下面这个方法在PC端和移动端同样适用。

 

      

 

 

  • 首先在项目中导入clipboard
npm install clipboard --save

 

  • 在使用的地方引入
import Clipboard from 'clipboard'

  

使用方法又分为下面两种:

方法一:

  • template
<div class="copy-code" >
    <p class="title">邀请码</p>
    <p class="code-text">{{inviteCode}}</p>
    <p class="copy-code-button"   <-- 作为选择器的标识,也可以使用id -->
       :data-clipboard-text="inviteCode"   <-- 要复制的内容 -->
       @click="copy">一键复制</p>
</div>    
  • script
copy () {
    var clipboard = new Clipboard('.copy-code-button') // 这里可以理解为选择器,选择上面的复制按钮
    clipboard.on('success', e => {
        Toast('复制成功')
        // 释放内存
        clipboard.destroy()
    })
    clipboard.on('error', e => {
        // 不支持复制
        Toast('手机权限不支持复制功能')
        // 释放内存
        clipboard.destroy()
    })
}

    

方法二:

  • template
<div class="copy-code" >
    <p class="title">邀请码</p>
    <p class="code-text">{{inviteCode}}</p>
    <p class="copy-code-button"
       @click="copy($event,inviteCode)">一键复制</p>
</div>
  • script
copy(e, text) {
    const clipboard = new Clipboard(e.target, { text: () => text })
    clipboard.on('success', e => {
        Toast('复制成功')
        // 释放内存
        clipboard.off('error')
        clipboard.off('success')
        clipboard.destroy()
    })
    clipboard.on('error', e => {
        // 不支持复制
        Toast('手机权限不支持复制功能')
        // 释放内存
        clipboard.off('error')
        clipboard.off('success')
        clipboard.destroy()
    })
    clipboard.onClick(e)
}

  

 

posted @ 2020-03-27 00:30  刘彤彤  阅读(4949)  评论(0编辑  收藏  举报