# clipboard + element-ui +vue 实现复制粘贴功能 **Repository Path**: Suwanbin/clipboard-copy-paste ## Basic Information - **Project Name**: clipboard + element-ui +vue 实现复制粘贴功能 - **Description**: vue + element-ui + clipboard.js 实现的复制粘贴 demo - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 6 - **Forks**: 0 - **Created**: 2020-08-27 - **Last Updated**: 2024-05-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README [toc] # vue + element-ui + clipboard.js 实现复制、粘贴功能 > 剪切功能参考[官方文档](https://clipboardjs.com/),个人认为用不太上(有富文本编辑器的时候可能才用得上,也或许不需要自己实现) **想要知道怎么使用,优先参考官方文档**(如何指定要复制的数据,如何复制指定的数据...) - 这篇博客主要是介绍如何完成这么一套操作 一般也就两种操作情况 - 1.复制指定元素的内容 - data-clipboard-action="copy"(复制) - data-clipboard-target="#bar"(复制 id 为 bar 的元素的内容) - 2.点击按钮直接复制设定的内容 - data-clipboard-text="diyContent"(复制到剪切板的内容为 diyContent) ## demo 效果 ![clipboardJS复制功能](markdown_images/README/clipboardJS复制功能.gif) ## demo 运行指南 ```js // 只需要很简单的两步 npm install npm run serve ``` ## 申明 clipboard.js 官方文档:[clipboard.js](https://clipboardjs.com/) - 中文官网(好像更新没那么及时了):http://www.clipboardjs.cn/ 本博客 demo 采用的是 vue + element-ui + clipboard.js 实现 - 官网上的提示效果用的是 [GitHub's Primer](https://github.com/primer/primer-css/tree/master/modules/primer-tooltips) (具体什么个操作还不太懂,没去了解过) - 页面上的复制成功提示效果调用的是 element-ui 的 `Notification 通知` 组件 ## 环境配置 安装 clipboard.js:`npm install clipboard --save` 安装 element-ui... ## 步骤分析 ```js // 0.复制选项 html 准备(参考官方文档了解配置项)

原样复制指定文本框内容

Copy

点击复制自定义内容到剪切板

Copy
// 1.需要用到的地方引入 Clipboard import Clipboard from 'clipboard' // 2.用触发操作对象实例化一个 clipboard 对象 var clipboard = new Clipboard(".copyBtn"); // 3.为其指定操作成功回调函数 var that = this clipboard.on("success", function (e) { console.info("Action:", e.action); console.info("Text:", e.text); console.info("Trigger:", e.trigger); // 清除选中状态 e.clearSelection(); that.$notify({ title: '成功', message: '恭喜您复制成功,赶快去粘贴吧~', type: 'success', showClose: false }); }); // 4.为其指定操作失败回调函数 clipboard.on("error", function (e) { console.error("Action:", e.action); console.error("Trigger:", e.trigger); that.$notify.error({ title: '失败', message: '操作失败,请重试!', showClose: false }); }); ``` ## demo 代码实现 > 结构不是很好,但重在实现 `src\App.vue` ```vue ``` `src\components\HelloWorld.vue` ```vue ``` `src\components\tableDataCopyDemo.vue` ```vue ``` 本文参考文档: - [使用Vue的插件clipboard使用复制功能](https://www.cnblogs.com/linchen1300/p/10219966.html) - [clipboard.js 中文站](http://www.clipboardjs.cn/) ## demo 地址 - [clipboard + element-ui +vue 实现复制粘贴功能](https://gitee.com/Suwanbin/clipboard-copy-paste) (如果帮到你了,记得帮我点个 star,非常感谢~)