Vue项目中实现点击复制
描述:想要实现一个功能,用户点击某段话即可将该段文字复制到粘贴板
解决:使用Clipboard
-
安装Clipboard
npm install clipboard --save
-
封装Clipboard
import Vue from 'vue' import Clipboard from 'clipboard' function clipboardSuccess() { Vue.prototype.$message({ //window.vm.$t() 为i18n国际化 message: window.vm.$t('copy.successMsg'), type: 'success', duration: 1500 }) } function clipboardError() { Vue.prototype.$message({ message: window.vm.$t('copy.errorMsg'), type: 'error' }) } export default function handleClipboard(text, event) { const clipboard = new Clipboard(event.target, { text: () => text }) clipboard.on('success', () => { clipboardSuccess() clipboard.destroy() }) clipboard.on('error', () => { clipboardError() clipboard.destroy() }) clipboard.onClick(event) }
-
在项目中使用
<el-button @click='handleCopy(inputData,$event)'>copy</el-button>
import clip from '@/utils/clipboard' // use clipboard directly methods: { handleCopy(text, event) { clip(text, event) } }