方法一:使用 v-clipboard
使用步骤:
1.安装依赖
npm install --save v-clipboard
2.在main.js中引入
import Vue from 'vue'
import Clipboard from 'v-clipboard'
Vue.use(Clipboard)
3.使用
<template>
<el-button
type="text"
v-clipboard:copy="copyRowData"
v-clipboard:success="clipboardSuccessHandler"
v-clipboard:error="clipboardErrorHandler">
复制
</el-button>
</template>
export default {
data() {
return {
copyRowData:''
}
},
methods: {
// Success event handler
clipboardSuccessHandler({ value, event }){
console.log('success', value);
this.$message.success("复制成功");
},
// Error event handler
clipboardErrorHandler({ value, event }) {
console.log('error', value)
}
}
}
方法二: 使用 clipboard,官网https://clipboardjs.com/
使用步骤:
1.安装
npm install clipboard --save
2.使用
//dom
···
<div>
<span
class="btn iconfont"
data-clipboard-action="copy"
:data-clipboard-text="copyText"
@click="copyLink"
>
复制
</span>
</div>
···
//引用
import Clipboard from 'clipboard'
...
//js
data() {
return {
//需要复制的信息
copyText: "test",
}
},
···
copyLink() {
//实例化clipboard插件实例
let clipboard = new Clipboard('.btn')
//成功的回调
clipboard.on('success', () => {
this.$message({
message: '复制成功',
type: 'success'
})
clipboard.destroy();// 销毁复制缓存,避免出现复制之前复制的内容
});
//失败的回调
clipboard.on('error', () => {
this.$message.error('复制失败')
});
}
···