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)
}

浙公网安备 33010602011771号