1.安装

npm i @vueuse/core

2.使用

  • useClipboard 剪贴板
<script setup lang="ts">
import { ref } from 'vue'
import { useClipboard, usePermission } from '@vueuse/core' const input = ref('')

const { text, isSupported, copy } = useClipboard()
const permissionRead = usePermission('clipboard-read')
const permissionWrite = usePermission('clipboard-write')
</script> <template>
<div v-if="isSupported">
<el-input v-model="input" type="text"></el-input>
<el-button @click="copy(input)">复制</el-button>
</div>
<p v-else>
该浏览器不支持useClipboard剪贴板API
</p>
</template>
  • useFullscreen 全屏
<script setup lang="ts">
import { ref } from 'vue'
import { useFullscreen } from '@vueuse/core' const el = ref(null)
const { toggle, isFullscreen } = useFullscreen(el)
</script> <template>
  <el-button v-if="!isFullscreen" @click="toggle">全屏</el-button><br>
  <el-button v-if="isFullscreen" @click="toggle">退出全屏</el-button>
</div>
</template>
  • useNow 获取当前时间
<script setup lang="ts">
import { useNow } from '@vueuse/core' const now = useNow()
</script> <template>
<div>Now: {{ now }}</div>
</template>
  • useDateFormat 格式化时间
<script setup lang="ts">
import { ref, computed } from 'vue-demi'
import { useNow, useDateFormat } from '@vueuse/core' const formatted = useDateFormat(useNow(), 'YYYY-MM-DD HH:mm:ss')
</script> <template>
<div>{{ formatted }}</div>
</template>
  • useBase64
<script setup lang="ts">
import type { Ref } from 'vue'
import { ref } from 'vue'
import { useBase64 } from '@vueuse/core' const text = ref('')
const file = ref() as Ref<File>
const image = ref() as Ref<HTMLImageElement> const { base64: textBase64 } = useBase64(text)
const { base64: fileBase64 } = useBase64(file)
const { base64: imageBase64 } = useBase64(image)
const { base64: bufferBase64 } = useBase64(new ArrayBuffer(8)) function onFileInput(e: Event) {
file.value = (e.target as HTMLInputElement).files![0]
}
</script> <template>
<div space-y-4>
<div grid md:grid-cols-2 gap-2>
<div>
<span>Text Input</span>
<textarea v-model="text" h-40 type="text" placeholder="Type something..." />
</div>
<div>
<span>Base64</span>
<textarea h-40 :value="textBase64" readonly />
</div>
</div> <div grid md:grid-cols-2 gap-2>
<div>
<span>Buffer Input</span>
<pre mt-2>new ArrayBuffer(1024)</pre>
</div>
<div>
<span>Base64</span>
<textarea h-40 :value="bufferBase64" readonly />
</div>
</div> <div grid md:grid-cols-2 gap-2>
<div>
<span>File Input</span>
<div>
<input mt-2 type="file" @input="onFileInput">
</div>
</div>
<div>
<span>Base64</span>
<textarea h-40 :value="fileBase64" readonly />
</div>
</div> <div grid md:grid-cols-2 gap-2>
<div>
<span>Image Input</span>
<img
ref="image"
w-full h-40 object-cover
class="rounded mt-2"
src="https://images.unsplash.com/photo-1494256997604-768d1f608cac?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=200&q=80"
>
</div>
<div>
<span>Base64</span>
<textarea h-40 :value="imageBase64" readonly />
</div>
</div>
</div>
</template> <style scoped>
textarea {
min-width: 0px !important;
width: 100%;
}
</style>

最新文章

  1. URL编码 utf-8 gb2312的区别
  2. WP7、WP8 格式化时间为距当前多少时间
  3. python Tornado(招聘的一个比较经常问到的知识)
  4. 10款免费而优秀的图表JS插件
  5. 使用dwr时动态生成table的一个小技巧
  6. 东大OJ-1051-旅行家的预算
  7. 【JavaEE企业应用学习记录】验证配置
  8. DDD:如何表达聚合之间的关系?
  9. SIFT+HOG+鲁棒统计+RANSAC
  10. c++异常详解
  11. LocalDB 的创建与迁移
  12. 【行为型】Iterator模式
  13. C#的百度地图开发(四)前端显示与定位
  14. Spring第二篇和第三篇的补充【JavaConfig配置、c名称空间、装载集合、JavaConfig与XML组合】
  15. jmeter下TPS插件的安装
  16. C#计算字符串长度,汉字算两个字符
  17. js判断是否是移动端自动跳转到wap页面代码
  18. 前端 HTML body标签相关内容 常用标签 盒子标签 div
  19. Mybatis中,当插入数据后,返回最新主键id的几种方法,及具体用法
  20. [UE4]蓝图替换节点、引用快捷方式

热门文章

  1. JVM系列(三):JVM内存结构和参数说明
  2. 必备技能,MySQL 查找并删除重复行
  3. 综合java admin后台记录
  4. vs2019下 c++中 dll 的新建和引用步骤
  5. Json数组转List
  6. CSS 属性大全
  7. vue-quill-editor 图片上传处理
  8. jQuery 使用手册(一)
  9. iis express添加网站,并启动
  10. static有什么作用?