失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > VUE 实现复制内容到剪贴板的方法

VUE 实现复制内容到剪贴板的方法

时间:2021-11-23 17:29:56

相关推荐

VUE 实现复制内容到剪贴板的方法

VUE 复制内容至剪切板(两种使用方法)

复制内容至剪切板使用的是插件'vue-clipboard2',通过官方文档会发现共有两种使用方式。

第一种方式与大多数文章类似,只粘贴代码:

<template><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>export default {data() {return {message: 'Copy These Text',}},methods: {onCopy: function (e) {alert('You just copied: ' + e.text)},onError: function (e) {console.log(e)alert('Failed to copy texts')}}}</script>

这种使用方式直接将变量内容复制至剪切板,暂时没有找到处理数据后再复制的方式,这时就需要使用第二种方式。

第二种方式:

<template><div class="container"><input type="text" v-model="message"><button type="button" @click="doCopy('add me!')">Copy!</button></div></template><script>export default {data() {return {message: 'Copy These Text'}},methods: {dataProcessing (val) {this.message = this.message + ' ' + val},doCopy: function (val) {this.dataProcessing(val)this.$copyText(this.message).then(function (e) {alert('Copied')console.log(e)}, function (e) {alert('Can not copy')console.log(e)})}}}</script>

通过这段示例代码能看到,复制动作使用的是VUE响应函数方式,这就为复制前控制数据提供了可能!

下面在看下vue实现复制内容到剪贴板功能,具体内容如下所示:

注: 依赖第三方插件 clipboard

一、安装插件

npm install vue-clipboard2 --save

二、全局注入(main.js)

三、使用

<ul class="file-list"><li v-for="(f, index) of files" :key="index"><span>[文件{{index + 1}}] {{f}}</span><span class="copy-btn" v-clipboard:copy="f" v-clipboard:success="onCopy" v-clipboard:error="onError">复制</span></li></ul>// 复制成功时的回调函数onCopy (e) {this.$message.success("内容已复制到剪切板!")},// 复制失败时的回调函数onError (e) {this.$message.error("抱歉,复制失败!")}

扩展:

通过自定义函数触发复制操作:

<el-button plain @click="handelCopyLink">复制链接</el-button>// 点击复制<script>handelCopyLink(val) {this.link="这是需要复制的文字"let that = this;this.$copyText(this.link).then(function (e) {that.$notify({title: "链接复制成功",type: "success",});},function (e) {that.$notify({title: "链接复制失败",type: "error",});});},</script>

如果觉得《VUE 实现复制内容到剪贴板的方法》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。