vue 复制到剪切板 公共方法组件 clipboard 第一次没反应第二次成功

背景:使用clipboard时候想提出组件,后续发现第一次没反应第二次成功
原理:clipboard是创建一个dom监听,然后点击dom时候复制并触发回调函数。所以第一次点击时候是创建监听,第二次点击才能被监听到
解决方案:
1、不提出组件,在mounted中初始化创建监听(不使用,因为不方便提出公共方法组件)
2、在每次点击时候多加一次点击(不推荐,不确定有无性能问题,毕竟创建了多个)
3、每次点击执行一遍创建监听->触发监听-> 销毁监听的整个生命周期,保证每次点击完毕后都卸载掉监听。

import Clipboard from 'clipboard'
// 复制粘贴插件
let clipboard = null
// init方法 创建监听
const clipboardInit = (content, clickEvent) => {clipboard = new Clipboard(clickEvent.target, {text: () => content})// 成功或失败时候触发回调函数,调用reset释放内存clipboard.on('success', () => {console.log('复制成功');clipboardReset()})clipboard.on("error", () => {console.log('复制失败')clipboardReset()})
}
// reset方法 释放内存
const clipboardReset = () => {clipboard.destroy()clipboard = null
}// 复制粘贴 content:要复制的内容,clickEvent:点击事件
const copyToClipboard = (content, clickEvent) => {// init初始化监听clipboardInit(content, clickEvent)// 触发监听clipboard.onClick(clickEvent)// 释放内存在成功或失败的回调函数中
}
export {copyToClipboard
}

使用示例

<t-button variant="text" @click="handleCopy" :data-clipboard-text="returnInfo.value">点击复制</t-button>
+++++++++++++
handleCopy(e) {copyToClipboard(this.returnInfo.value,e)
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/772762.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

KY228 找位置(用Java实现)

描述 对给定的一个字符串&#xff0c;找出有重复的字符&#xff0c;并给出其位置&#xff0c;如&#xff1a;abcaaAB12ab12 输出&#xff1a;a&#xff0c;1&#xff1b;a&#xff0c;4&#xff1b;a&#xff0c;5&#xff1b;a&#xff0c;10&#xff0c;b&#xff0c;2&…

2960. 统计已测试设备

文章目录 题意思路代码 题意 题目链接 思路 设备数1&#xff0c;time1 代码 class Solution { public:int countTestedDevices(vector<int>& batteryPercentages) {int time 0;int ans 0;for (auto &i:batteryPercentages){if (i - time > 0){time;ans…

Postwoman 安装

Postwoman作为Postman的女朋友&#xff0c;具有免费开源、轻量级、快速且美观等特性&#xff0c;是一款非常好用的API调试工具。能帮助程序员节省时间&#xff0c;提升工作效率。 Github地址&#xff1a;GitHub - hoppscotch/hoppscotch: &#x1f47d; Open source API devel…

深入了解Hadoop:特性与伪分布式运行进程

引言 Hadoop是一个强大的分布式计算框架&#xff0c;它能够对大规模数据进行可靠、高效和可伸缩的处理。随着数据量的不断增长&#xff0c;企业对于处理大规模数据的需求也越来越高&#xff0c;Hadoop因此成为了大数据处理领域的首选技术。本文将深入探讨Hadoop的特性以及伪分…

如何打包springboot项目并部署服务器

创建一个springboot项目&#xff0c;先写一个接口&#xff0c;我这里是dabaimao/jiekou,启动访问 在pom中加上maven插件 <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin<…

2010年之前电脑ubuntu安装nvidia驱动黑屏处理

装好驱动 仿真fps直接到60Hz 陈旧设备 都是非常老旧的电脑&#xff0c;没钱换新电脑&#xff0c;就这么穷…… 电脑详细配置&#xff1a; 冲动 想装显卡驱动提升一下性能&#xff0c;结果……黑了 黑习惯了也无所谓&#xff0c;几分钟就能解决&#xff0c;关键还是太穷&…

ES6 字符串/数组/对象/函数扩展

文章目录 1. 模板字符串1.1 ${} 使用1.2 字符串扩展(1) ! includes() / startsWith() / endsWith()(2) repeat() 2. 数值扩展2.1 二进制 八进制写法2.2 ! Number.isFinite() / Number.isNaN()2.3 inInteger()2.4 ! 极小常量值Number.EPSILON2.5 Math.trunc()2.6 Math.sign() 3.…

【Go】八、Gin 入门使用简介

GIN GIN 是一个高性能&#xff0c;简单易用的轻量级 WEB 框架 快速尝试 package mainimport ("github.com/gin-gonic/gin""net/http" )func pong(c *gin.Context) {// 这里的 gin.H 是 map[string]interface{} 的缩写c.JSON(http.StatusOK, gin.H{"…

Spring Cloud Gateway 3.x 获取body中的数据鉴权

前言 SpringCloud Gateway建立在Spring Framework5、Project Reactor和Spring Boot2.0之上&#xff0c;使用WebFlux非阻塞API 什么是WebFlux? 官网&#xff1a;https://docs.spring.io/spring-framework/docs/current/reference/html/web-reactive.html 传统的Web框架&…

YOLOv9改进策略:注意力机制 | 动态稀疏注意力的双层路由方法BiLevelRoutingAttention | CVPR2023

&#x1f4a1;&#x1f4a1;&#x1f4a1;本文改进内容&#xff1a; CVPR2023 动态稀疏注意力的双层路由方法BiLevelRoutingAttention&#xff0c;强烈推荐&#xff0c;涨点很不错&#xff0c;同时被各个领域的魔改次数甚多&#xff0c;侧面验证了性能。 &#x1f4a1;&#x1…

我们该如何优化迭代自己?

哈喽&#xff0c;你好啊&#xff0c;我是雷工&#xff01; 一款软件如果想变得完美&#xff0c;那么肯定需要不断的试运行和更新迭代。 我们和软件一样&#xff0c;生活中难免会有错误的决策&#xff0c;失误的事件&#xff0c;为了能够解决我们自身存在的BUG&#xff0c;我们该…

设计用于驱动12 V汽车接地负载,VN5E160ASTR、VND5E160MJTR、VND5E025AKTR、VND5E050ACKTR 单/双通道高侧驱动器

摘要 意法半导体VIPower系列高侧开关符合汽车应用要求&#xff0c;内嵌先进的控制功能&#xff0c;其新型保护机制适用于各种负载类型及额定功率。 此类开关是汽车系统的理想选择&#xff0c;如&#xff1a;接线盒、内部/外部照明、直流电机驱动等&#xff0c;并适用于任何需…

[JAVA]12.ArrayList

一、ArrayList 1.1ArrayList类概述 - 什么是集合 ​ 提供一种存储空间可变的存储模型&#xff0c;存储的数据容量可以发生改变 - ArrayList集合的特点 ​ 底层是数组实现的&#xff0c;长度可以变化 - 泛型的使用 ​ 用于约束集合中存储元素的数据类型 1.2ArrayList类常…

基于nodejs+vue基于协同过滤算法的私人诊python-flask-django-php

实现后的私人诊所管理系统基于用户需求分析搭建的&#xff0c;并且会有个人中心&#xff0c;患者管理&#xff0c;医生管理&#xff0c;科室管理&#xff0c;出诊医生管理&#xff0c;预约挂号管理&#xff0c;预约取消管理&#xff0c;病历信息管理&#xff0c;药品信息管理&a…

qt事件机制学习笔记

实现闹钟功能 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget), speecher(new QTextToSpeech(this)) //给语音播报者实例化空间 {ui->setupUi(this); }Widget::~Widget() {delete …

【GameFramework框架内置模块】18、界面(UI)

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址QQ群&#xff1a;398291828 大家好&#xff0c;我是佛系工程师☆恬静的小魔龙☆&#xff0c;不定时更新Unity开发技巧&#xff0c;觉得有用记得一键三连哦。 一、前言 【GameFramework框架】系列教程目录&#xff1a;…

Spark SQL 数据源

Spark SQL 数据源 Spark SQL支持读取很多种数据源&#xff0c;比如parquet文件&#xff0c;json文件&#xff0c;文本文件&#xff0c;数据库等。下面列出了具体的一些数据源&#xff1a; Parquet文件Orc文件Json文件Hive表JDBC 先把people.json导入到hdfs的tmp目录下。peop…

多模态模型学习1——CLIP对比学习 语言-图像预训练模型

多模态模型学习1——CLIP对比学习 语言-图像预训练模型 1.背景介绍 随着互联网的快速发展&#xff0c;图像和文本数据呈现爆炸式增长。如何有效地理解和处理这些多模态数据&#xff0c;成为人工智能领域的一个重要研究方向。多模态模型学习旨在通过联合学习图像和文本表示&am…

WebGIS开发应该从哪些方面做准备

工程化思想 环境配置项目构建npm&#xff1a;Node包管理器&#xff0c;是 JavaScript 运行时 Node.js 的默认程序包管理器。 https://www.freecodecamp.org/chinese/news/what-is-npm-a-node-package-manager-tutorial-for-beginners/新建一个前端工程项目&#xff1a;前端框…

在项目中数据库如何优化?【MySQL主从复制(创建一个从节点复制备份数据)】【数据库读写分离ShardingJDBC(主库写,从库读)】

MySQL主从复制 MySQL主从复制介绍MySQL复制过程分成三步&#xff1a;1). MySQL master 将数据变更写入二进制日志( binary log)2). slave将master的binary log拷贝到它的中继日志&#xff08;relay log&#xff09;3). slave重做中继日志中的事件&#xff0c;将数据变更反映它自…