效果展示
源码
创建好vue3项目和添加elementplus后执行如下
npm install --save vue3-clipboard
main.js
import { createApp } from 'vue'
import App from './App.vue'
import installElementPlus from './plugins/element'
import VueClipboard from 'vue3-clipboard'
const app = createApp(App)
installElementPlus(app)
app.use(VueClipboard, {
autoSetContainer: true,
appendToBody: true,
}).mount('#app')
App.vue
<template>
<div style="width: 50%;">
<el-button type="primary" @click="handleCopy">复制文本</el-button>
<el-input v-model="textarea" type="textarea" />
</div>
</template>
<script>
import { copyText } from 'vue3-clipboard'
import { ElMessage } from 'element-plus'
export default {
name: 'App',
data() {
return {
textarea: ''
}
},
methods: {
handleCopy() {
if (this.textarea === '') {
ElMessage.warning('请输入文本再复制');
return
}
copyText(this.textarea, undefined, (error) => {
if (error) {
ElMessage.warning(`复制失败: ${error} !`);
} else {
ElMessage.success(`复制: ${this.textarea} 成功!`);
}
});
}
}
}
</script>