vue之复制内容要剪贴板
2021-07-27 本文已影响0人
执笔于情
有的时候在移动端, 会遇到个复制内容到剪贴板的需求, 自己封装的话又感觉很麻烦, 在vue里有一个
vue-clipboard2
的插件
- 关于vue-clipboard2的介绍
vue-clipboard2官网 - vue-clipboard2的安装
npm install --save vue-clipboard2
- vue-clipboard2的使用
首先需要在main.js文件里面注册
import Vue from 'vue'
import VueClipboard from 'vue-clipboard2'
Vue.use(VueClipboard)
第一种使用方法, 使用$ref
如:
let container = this.$refs.container;
this.$copyText("Text to copy", container);
第二种是直接在标签里面使用
<div id="app"></div>
<template id="t">
<div class="container">
<input type="text" v-model="message">
<button type="button"
v-clipboard:copy="message"
v-clipboard:success="onCopy"
v-clipboard:error="onError">Copy!</button>
</div>
</template>
<script>
new Vue({
el: '#app',
template: '#t',
data: function () {
return {
message: 'Copy These Text'
}
},
methods: {
onCopy: function (e) {
alert('You just copied: ' + e.text)
},
onError: function (e) {
alert('Failed to copy texts')
}
}
})
</script>
还有第三种方法, 是直接用事件绑定的
<div id="app"></div>
<template id="t">
<div class="container">
<input type="text" v-model="message">
<button type="button" @click="doCopy">Copy!</button>
</div>
</template>
<script>
new Vue({
el: '#app',
template: '#t',
data: function () {
return {
message: 'Copy These Text'
}
},
methods: {
doCopy: function () {
this.$copyText(this.message).then(function (e) {
alert('Copied')
console.log(e)
}, function (e) {
alert('Can not copy')
console.log(e)
})
}
}
})
</script>
一般感觉第二种会方便一些, hahaha