首先如今Vue中引入clipboard前端
npm install clipboard --save
在须要使用的组件中import 引入clipboardnpm
import Clipboard from 'clipboard';
clipboard的实际使用缓存
不管是单按钮复制仍是多按钮复制,必定要在页面加载DOM完成后先New出来具备复制功能的按钮,若是在函数内再New那么可能会出现点击复制按钮两次,才复制成功的现象,以下:函数
mounted() { var copybtn = document.getElementsByClassName('btn') this.clipboard = new Clipboard(copybtn); } <!--并不必定非要在mounted中也能够在其余周期内, 只要页面已经加载完DOM便可,若是是动态生成可使用nextTick中New。-->
绑定复制内容的方式有如下几种:学习
<!--第一种直接绑定在按钮上--> <button class="marleft10 btn" style="float: right;border: none;" :data-clipboard-text="2" @click="copy()">复制 </button> <!--第二种单个复制按钮动态获取须要复制的内容--> <input type="text" v-model="copyContent" id="copy_text" style="opacity: 0"> <button ref="copy" data-clipboard-action="copy" data-clipboard-target="#copy_text" @click="copy">复制</button> <!--第三种能够在New Clipboard时设定要复制的内容--> new Clipboard('copyBtn',function(){ return <!--要复制的内容--> }) copy(){ let _this = this <!--若是在内部new会出现点击两次在复制成功的现象因此还请各位多多注意--> clipboard.on('success', function () { Toast('复制成功') _this.destroy() <!--销毁缓存,而后在从新new这样不会出现点击复制上出现以前复制的内容的状况--> _this.clipboard = new Clipboard(copyBtn); }) clipboard.on('error', function () { // 前端全栈学习交流圈 Toast('复制失败,请手动复制')//866109386 })// 面向1-3年前端人员,帮助突技术瓶颈,提高思惟能力。 }
以上是笔者本身在实际中遇到的问题及解决办法并不适用全部,仅供参考,若有不对的地方还请多多之指正,共同窗习进步this