常用的一些api总会忘记,在此记录方便查找
@vueuse/core
import {useClipboard} from "@vueuse/core"
- useState 状态管理 创建和管理局部状态。
useStorage
:在 localStorage 或 sessionStorage 中存储和同步状态。useMouse
:获取鼠标位置const {x,y} = useMouse(); //获取到该点的x y坐标
useTitle
:动态设置文档标题。useFavicon
:动态设置网页的 favicon。useFetch
:进行 HTTP 请求。useWebSocket
:使用 WebSocket 进行实时通信。useInterval
:定时器useTimeout
:延时器。useTransition
:处理过渡效果。useSpring
:实现弹簧动画。useDebounce
:防抖函数。useThrottle
:节流函数。- 监听鼠标按下 useMousePressed()
<script setup> const { pressed } = useMousePressed() </script> <template> <p>{{ pressed }}</p> </template>
获取鼠标选择的文字 useTextSelection()
<script setup> const state = useTextSelection() </script> <template> <p>一段供鼠标选择的文字</p> <p>被鼠标选择的文字是:{{ state.text }}</p> </template>
- // 获取滚动条坐标 const { x, y } = useWindowScroll({ behavior: 'smooth' })
- 元素滚动条 useScroll() const el = ref<HTMLElement | null>(null) const { x, y, isScrolling, arrivedState, directions } = useScroll(el)
- useClipboard //复制到剪贴板
<script setup lang="ts"> const { copy, copied, isSupported, text } = useClipboard() //copy 复制的方法 //copied 是否完成复制 //isSupported 浏览器是否支持复制到剪贴板 //text 复制到剪贴板的内容 let msg = '你好' async function doCopy() { copy(msg) if (copied) { alert('已复制到剪贴板!') } } </script> <template> <div class="p-20"> <p>{{ msg }}</p> <p v-if="text">已复制到剪贴板的内容:{{ text }}</p> <button v-if="isSupported" @click="doCopy">复制</button> </div> </template>
- 暂停代码执行 promiseTimeout
import { promiseTimeout } from '@vueuse/core' async function print() { // 开启 console 的默认计时器 console.time() // 打印当前 console默认计时器 的时间 console.timeLog() // 等待1s后执行 await promiseTimeout(1000) // 打印当前 console默认计时器 的时间 console.timeLog() } print()
- 获取联网信息 useNetwork()
const { isOnline, offlineAt, downlink, downlinkMax, effectiveType, saveData, type } = useNetwork()
- 判断是否联网 useOnline()
const online = useOnline()