VueUse-useClipboard剪切板功能

本文介绍了在Vue项目中使用useClipboard插件实现文本复制功能时,如何处理浏览器兼容问题,包括检查浏览器版本、新版本的安全策略以及如何设置legacy选项以确保在不同域名下正常工作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<template>
<input type="text" v-model="message">
  <button type="button" @click="onCopy()">复制  
  </button>
</template>

<script setup lang="ts">
import { ref,watch } from "vue"
import { useClipboard } from "@vueuse/core"
const {isSupported,copy,copied}=useClipboard()
const message=ref('0000000')
const onCopy=()=>{
  if (!isSupported.value) {
    window.$message.error("您的浏览器不支持复制功能!");
    return;
  }
  copy(message.value);
 
}
watch(copied,(val)=>{
if(val)return  alert(message.value)
})

</script>

<style scoped>


</style>

如果提醒 浏览器不支持复制 错误排除:
1.查看是否浏览器版本过低;
2.由于新版浏览器的安全策略,clipboard只有在安全域名下才可以访问,http域名下会显示undefined,但使用https开头的域名,或localhost,就可以访问navigator.clipboard。需要在调用useClipboard时加上legacy:true  (legacy:true 仅支持9.4.0 以上版本)

const {isSupported,copy,copied } = useClipboard({ legacy: true })

### Vue3 和 VueUse 功能介绍 #### 处理 Vue 单文件组件 (SFC) `@vue/compiler-sfc` 这个包作为 Vue 核心 monorepo 的一部分,提供了处理 Vue SFC(单文件组件)所需的底层功能[^1]。 ```javascript // 安装 @vue/compiler-sfc npm install @vue/compiler-sfc ``` #### 实现全屏控制 通过 `useFullscreen` 可以轻松实现页面或元素的全屏切换逻辑: ```javascript import { useFullscreen } from '@vueuse/core'; const { isFullscreen, toggle } = useFullscreen(); if (!isFullscreen.value) { toggle(); // 切换到全屏模式 } ``` 此方法允许开发者检测当前是否处于全屏状态并提供了一个简单的 API 来触发全屏操作[^2]。 #### 管理剪切板交互 利用 `useClipboard` 能够方便地管理用户的复制行为以及判断浏览器对于 Clipboard API 支持情况: ```javascript import { useClipboard } from '@vueuse/core'; const { text, copy, isSupported } = useClipboard({ copiedDuring: 1500, }); if (isSupported.value) { await copy('要复制的文字'); console.log(`已复制: ${text.value}`); } else { console.error('该浏览器不支持剪切板API'); } ``` 这段代码展示了如何配置默认参数并通过异步方式执行复制命令,同时获取最新的粘贴板内容。 #### 控制主题颜色方案 借助于 `useDark` 函数可以快速启用暗黑模式的支持: ```javascript import { useDark, useToggle } from '@vueuse/core'; import { ref } from 'vue'; const isDark = useDark(); const toggleDarkMode = useToggle(isDark); <button @click="toggleDarkMode()"> {{ isDark ? "Light Mode" : "Dark Mode"}} </button> ``` 上述例子说明了怎样创建一个按钮来动态改变网站的主题样式。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值