Vue3实现clipboard复制的使用示例

 更新时间:2023年11月03日 09:27:56   作者:三劫散仙  
在日常开发中,为用户提供复制文本功能的需求比较常见,下面介绍一款vue3可用的插件,可以快速实现这个功能,感兴趣的可以了解一下

一个很小的交互功能,网上搜了一下有一个 vue3-clipboard 直接支持vue3,到github仓库看了下,原作者已经不维护这个项目了:

推荐使用 vueuse 自带的 useclipboard 功能,由 vue 团队维护,稳定性基本没问题

官网链接:useClipboard | VueUse

官网的例子如下:

import { useClipboard } from '@vueuse/core'
 
  const source = ref('Hello')
  const { text, copy, copied, isSupported } = useClipboard({ source })
 
    
    
    <div v-if="isSupported">
    <button @click='copy(source)'>
      <!-- by default, `copied` will be reset in 1.5s -->
      <span v-if='!copied'>Copy</span>
      <span v-else>Copied!</span>
    </button>
    <p>
      Current copied: <code>{{ text || 'none' }}</code>
    </p>
  </div>
  <p v-else>
    Your browser does not support Clipboard API
  </p>

上面的例子并不具备通用性,我们实际应用肯定需要再次封装,下面给出我封装的效果,在 Table 的每一行中,有一个name提供快捷拷贝展示效果如下:

这样用图标代替复制的按钮样式会更加美观一点

在ts工具类中封装的通用拷贝方法,只需要传入要复制的参数即可:

import {Component, h} from "vue";
import Icon from '@ant-design/icons-vue';
import { useClipboard } from '@vueuse/core'
import { message } from 'ant-design-vue';
const { copy, isSupported } = useClipboard();
 
export function renderDesignIcon (icon: Component, conf:any=null) {
    return  h(Icon,conf, { component: () => h(icon,) })
}
 
export function handleCopy (text:string) {
    if (!isSupported) {
        message.error("您的浏览器不支持Clipboard API");
        return;
    }
    copy(text);
    message.success(`复制成功:${text}`);
}
 

然后在使用的时候,只需要在 CopyOutlined 图标的点击事件上,调用这个方法即可:

在 vue 模版中调用

CopyOutlined @click="handleCopy(text)" style="color: gray;"> </CopyOutlined>

在render函数中调用:

  {
    title: "应用名",
    dataIndex: "applicationName",
    width: '180px',
    customRender: ({text, record, index, column}) => {
      return h('div',{}, [
          `${record.applicationName} `,
        renderDesignIcon(CopyOutlined, {
          style: { color: 'gray' },
          onClick: () => {
            handleCopy(record.applicationName)
          }
        })
      ] )
    },
  }

到此这篇关于Vue3实现clipboard复制的使用示例的文章就介绍到这了,更多相关Vue3 clipboard复制内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 教你如何开发Vite3插件构建Electron开发环境

    教你如何开发Vite3插件构建Electron开发环境

    这篇文章主要介绍了如何开发Vite3插件构建Electron开发环境,文中给大家提到了如何让 Vite 加载 Electron 的内置模块和 Node.js 的内置模块,需要的朋友可以参考下
    2022-11-11
  • vue使用WEB自带TTS实现语音文字互转的操作方法

    vue使用WEB自带TTS实现语音文字互转的操作方法

    这篇文章主要介绍了vue使用WEB自带TTS实现语音文字互转,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-01-01
  • vue踩坑记录之echarts动态数据刷新问题

    vue踩坑记录之echarts动态数据刷新问题

    这篇文章主要介绍了vue踩坑记录之echarts动态数据刷新问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • MAC+PyCharm+Flask+Vue.js搭建系统

    MAC+PyCharm+Flask+Vue.js搭建系统

    最近新做了个项目,使用的是MAC+PyCharm+Flask+Vue.js搭建系统,本文就来分享一下搭建步骤,感兴趣的可以了解一下
    2021-05-05
  • 基于VUE的v-charts的曲线显示功能

    基于VUE的v-charts的曲线显示功能

    这篇文章主要介绍了基于VUE的v-charts的曲线显示功能,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-10-10
  • Element UI中table单元格合并的解决过程

    Element UI中table单元格合并的解决过程

    element ui中的table表格数据是动态生成的,最近遇到个需求,要求我们对单元格进行合并,所以下面这篇文章主要给大家介绍了关于Element UI中table单元格合并的解决过程,需要的朋友可以参考下
    2022-08-08
  • vue实现选项卡功能

    vue实现选项卡功能

    这篇文章主要为大家详细介绍了vue实现选项卡功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • Vue.js实现拖放效果的实例

    Vue.js实现拖放效果的实例

    这篇文章主要介绍了Vue.js实现拖放效果的实例的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-09-09
  • vue3+vite+antd如何实现自定义主题

    vue3+vite+antd如何实现自定义主题

    这篇文章主要介绍了vue3+vite+antd如何实现自定义主题问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • vue项目中怎样嵌入其它项目的页面

    vue项目中怎样嵌入其它项目的页面

    这篇文章主要介绍了vue项目中怎样嵌入其它项目的页面问题,具有很好 的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10

最新评论