mcpField
V
vueuse-functions

vueuse-functions

github.com/antfu开发6.0k21.4k 次安装6 天前更新
代码仓库

关于 vueuse-functions

面向 Vue.js 和 Nuxt 项目的 VueUse 组合式函数选择与实现指南。它将需求对应到函数及其用法参考,并优先采用组合式函数而非自定义实现。

主要功能

  1. 01按需求匹配 VueUse 函数
  2. 02提供调用规则
  3. 03涵盖状态、浏览器、传感器和网络 API
  4. 04要求查阅用法参考

适用场景

  1. 01为 Vue.js 功能选择组合式函数
  2. 02实现响应式浏览器或 DOM 行为
  3. 03确认依赖项的调用规则

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/antfu/skills --skill vueuse-functions

安装后在 Claude Code 中输入/vueuse-functions确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

LICENSE.md
references/
computedAsync.md
computedEager.md
computedInject.md
computedWithControl.md
createDisposableDirective.md
createEventHook.md
createGenericProjection.md
createGlobalState.md
createInjectionState.md
createProjection.md
createRef.md
createReusableTemplate.md
createSharedComposable.md
createTemplatePromise.md
createUnrefFn.md
extendRef.md
from.md
get.md
injectLocal.md
isDefined.md
logicAnd.md
logicNot.md
logicOr.md
makeDestructurable.md
onClickOutside.md
onElementRemoval.md
onKeyStroke.md
onLongPress.md
onStartTyping.md

详细介绍

VueUse 函数

本技能是一份面向 Vue.js / Nuxt 项目的 VueUse 组合式函数决策与实现指南。它会将需求对应到最合适的 VueUse 函数,采用正确的用法,并优先使用基于组合式函数的方案,而非定制代码,以保持实现简洁、易维护且高效。

适用场景

  • 在协助用户进行 Vue.js / Nuxt 开发时,应用本技能。
  • 始终先检查是否可以使用 VueUse 函数实现需求。
  • 优先使用 VueUse 组合式函数,而非自定义代码,以提升可读性、可维护性和性能。
  • 将需求对应到最合适的 VueUse 函数,并遵循该函数的调用规则。
  • 请参阅下方函数表中的 Invocation 字段。例如:
    • AUTO:适用时自动使用。
    • EXTERNAL:仅当用户已安装所需的外部依赖时使用;否则重新考虑,并仅在确有必要时询问是否安装。
    • EXPLICIT_ONLY:仅在用户明确要求时使用。

    注意:提示词或 AGENTS.md 中的用户指令可能会覆盖函数默认的 Invocation 规则。

函数

下方列出的所有函数均属于 VueUse 库,各章节根据函数功能分类。

重要:每个函数条目都包含简短的 Description 和详细的 Reference。使用任何函数时,请务必查阅 ./references 中对应的文档,了解用法详情和类型声明。

状态
FunctionDescriptionInvocation
createGlobalState在全局作用域中保存状态,以便在多个 Vue 实例间重复使用AUTO
createInjectionState创建可注入组件的全局状态AUTO
createSharedComposable使组合式函数可供多个 Vue 实例使用AUTO
injectLocal扩展 inject,可调用 provideLocal 在同一组件中提供值AUTO
provideLocal扩展 provide,可调用 injectLocal 在同一组件中获取值AUTO
useAsyncState响应式异步状态AUTO
useDebouncedRefHistoryuseRefHistory 的简写形式,带防抖筛选器AUTO
useLastChanged记录上次更改的时间戳AUTO
useLocalStorage响应式 LocalStorageAUTO
useManualRefHistory用户调用 commit() 时,手动跟踪 ref 的更改历史AUTO
useRefHistory跟踪 ref 的更改历史AUTO
useSessionStorage响应式 SessionStorageAUTO
useStorage创建响应式 ref,用于访问和修改 LocalStorage 或 SessionStorageAUTO
useStorageAsync支持异步操作的响应式 StorageAUTO
useThrottledRefHistoryuseRefHistory 的简写形式,带节流筛选器AUTO
元素
功能描述调用方式
useActiveElement响应式 document.activeElementAUTO
useDocumentVisibility响应式跟踪 document.visibilityStateAUTO
useDraggable使元素可拖动AUTO
useDropZone创建可放置文件的区域AUTO
useElementBoundingHTML 元素的响应式边界框AUTO
useElementSizeHTML 元素的响应式尺寸AUTO
useElementVisibility跟踪元素在视口中的可见性AUTO
useIntersectionObserver检测目标元素可见性的变化AUTO
useMouseInElement与元素相关的响应式鼠标位置AUTO
useMutationObserver侦听 DOM 树的变化AUTO
useParentElement获取给定元素的父元素AUTO
useResizeObserver报告元素内容或边框盒尺寸的变化AUTO
useWindowFocus通过 window.onfocus 和 window.onblur 事件响应式跟踪窗口焦点AUTO
useWindowScroll响应式窗口滚动位置AUTO
useWindowSize响应式窗口尺寸AUTO
浏览器
FunctionDescriptionInvocation
useBluetooth响应式 Web Bluetooth APIAUTO
useBreakpoints响应式视口断点AUTO
useBroadcastChannel响应式 BroadcastChannel APIAUTO
useBrowserLocation响应式浏览器位置AUTO
useClipboard响应式 Clipboard APIAUTO
useClipboardItems响应式 Clipboard APIAUTO
useColorMode响应式颜色模式(深色 / 浅色 / 自定义),并自动持久化数据AUTO
useCssSupports兼容 SSR 且响应式的 CSS.supportsAUTO
useCssVar操作 CSS 变量AUTO
useDark响应式深色模式,并自动持久化数据AUTO
useEventListener轻松使用 EventListenerAUTO
useEyeDropper响应式 EyeDropper APIAUTO
useFavicon响应式网站图标AUTO
useFileDialog轻松打开文件对话框AUTO
useFileSystemAccess使用 FileSystemAccessAPI 创建、读取和写入本地文件AUTO
useFullscreen响应式 Fullscreen APIAUTO
useGamepad为 Gamepad API 提供响应式绑定AUTO
useImage在浏览器中响应式加载图像AUTO
useMediaControls为 audio 和 video 元素提供响应式媒体控件AUTO
useMediaQuery响应式 媒体查询AUTO
useMemory响应式内存信息AUTO
useObjectUrl表示对象的响应式 URLAUTO
usePerformanceObserver观察性能指标AUTO
usePermission响应式 Permissions APIAUTO
usePreferredColorScheme响应式 prefers-color-scheme 媒体查询AUTO
usePreferredContrast响应式 prefers-contrast 媒体查询AUTO
usePreferredDark响应式深色主题偏好AUTO
usePreferredLanguages响应式 Navigator LanguagesAUTO
usePreferredReducedMotion响应式 prefers-reduced-motion 媒体查询AUTO
usePreferredReducedTransparency响应式 prefers-reduced-transparency 媒体查询AUTO
useScreenOrientation响应式 Screen Orientation APIAUTO
useScreenSafeArea响应式 env(safe-area-inset-*)AUTO
useScriptTag创建 script 标签AUTO
useShare响应式 Web Share APIAUTO
useSSRWidth用于设置全局视口宽度,以便在渲染依赖视口宽度的 SSR 组件时使用,例如 useMediaQuery 或 useBreakpointsAUTO
useStyleTag在 head 中注入响应式 style 元素AUTO
useTextareaAutosize根据内容自动更新 textarea 的高度AUTO
useTextDirection响应式元素文本的 dirAUTO
useTitle响应式文档标题AUTO
useUrlSearchParams响应式 URLSearchParamsAUTO
useVibrate响应式 Vibration APIAUTO
useWakeLock响应式 Screen Wake Lock APIAUTO
useWebNotification响应式 NotificationAUTO
useWebWorker简单的 Web Workers 注册与通信AUTO
useWebWorkerFn运行耗时函数而不阻塞 UIAUTO
Sensors
FunctionDescriptionInvocation
onClickOutside监听元素外部的点击AUTO
onElementRemoval当该元素或包含该元素的任意元素从 DOM 中移除时触发AUTO
onKeyStroke监听键盘按键AUTO
onLongPress监听对元素的长按AUTO
onStartTyping当用户开始在不可编辑元素上输入时触发AUTO
useBattery响应式 Battery Status APIAUTO
useDeviceMotion响应式 DeviceMotionEventAUTO
useDeviceOrientation响应式 DeviceOrientationEventAUTO
useDevicePixelRatio响应式跟踪 window.devicePixelRatioAUTO
useDevicesList响应式 enumerateDevices,列出可用的输入/输出设备AUTO
useDisplayMedia响应式 mediaDevices.getDisplayMedia 流媒体AUTO
useElementByPoint根据坐标获取响应式元素AUTO
useElementHover元素悬停状态的响应式数据AUTO
useFocus响应式工具,用于跟踪或设置 DOM 元素的焦点状态AUTO
useFocusWithin响应式工具,用于跟踪元素或其后代是否获得焦点AUTO
useFps响应式 FPS(每秒帧数)AUTO
useGeolocation响应式 Geolocation APIAUTO
useIdle跟踪用户是否处于非活动状态AUTO
useInfiniteScroll元素的无限滚动AUTO
useKeyModifier响应式 Modifier StateAUTO
useMagicKeys按键按下状态的响应式数据AUTO
useMouse鼠标位置的响应式数据AUTO
useMousePressed鼠标按下状态的响应式数据AUTO
useNavigatorLanguage响应式 navigator.languageAUTO
useNetwork响应式 Network statusAUTO
useOnline在线状态的响应式数据AUTO
usePageLeave用于指示鼠标是否离开页面的响应式状态AUTO
useParallax轻松创建视差效果AUTO
usePointer响应式 pointer stateAUTO
usePointerLock响应式 pointer lockAUTO
usePointerSwipe基于 PointerEvents 的响应式滑动检测AUTO
useScroll滚动位置和状态的响应式数据AUTO
useScrollLock锁定元素的滚动AUTO
useSpeechRecognition响应式 SpeechRecognitionAUTO
useSpeechSynthesis响应式 SpeechSynthesisAUTO
useSwipe基于 TouchEvents 的响应式滑动检测AUTO
useTextSelection基于 Window.getSelection 响应式跟踪用户的文本选择AUTO
useUserMedia响应式 mediaDevices.getUserMedia 流媒体AUTO
网络
FunctionDescriptionInvocation
useEventSourceEventSource 或 Server-Sent-Events 实例会与 HTTP 服务建立持久连接AUTO
useFetch响应式 Fetch API,支持中止请求AUTO
useWebSocket响应式 WebSocket 客户端AUTO
动画
FunctionDescriptionInvocation
useAnimate响应式 Web Animations APIAUTO
useInterval每隔一段时间递增的响应式计数器AUTO
useIntervalFn带控制功能的 setInterval 封装AUTO
useNow响应式当前 Date 实例AUTO
useRafFn每次 requestAnimationFrame 时调用函数AUTO
useTimeout在指定时间后变为 true 的响应式值AUTO
useTimeoutFn带控制功能的 setTimeout 封装AUTO
useTimestamp响应式当前时间戳AUTO
useTransition在值之间进行过渡AUTO
组件
FunctionDescriptionInvocation
computedInject组合 computed 和 injectAUTO
createReusableTemplate在组件作用域内定义并复用模板AUTO
createTemplatePromise将模板作为 PromiseAUTO
templateRef将 ref 绑定到模板元素的简写形式AUTO
tryOnBeforeMount安全的 onBeforeMountAUTO
tryOnBeforeUnmount安全的 onBeforeUnmountAUTO
tryOnMounted安全的 onMountedAUTO
tryOnScopeDispose安全的 onScopeDisposeAUTO
tryOnUnmounted安全的 onUnmountedAUTO
unrefElement从 Vue ref 或组件实例中获取底层 DOM 元素AUTO
useCurrentElement将当前组件的 DOM 元素作为 ref 获取AUTO
useMountedref 中的挂载状态AUTO
useTemplateRefsList将 refs 绑定到 v-for 中模板元素和组件的简写形式AUTO
useVirtualList轻松创建虚拟列表AUTO
useVModelv-model 绑定的简写形式AUTO
useVModelsprops v-model 绑定的简写形式AUTO
监听
函数描述调用方式
until等待变化的一次性 Promise 监听AUTO
watchArray监听数组的新增和移除AUTO
watchAtMost限制 watch 的触发次数AUTO
watchDebounced防抖监听AUTO
watchDeep以 {deep: true} 监听值的简写形式AUTO
watchIgnorable可忽略的监听AUTO
watchImmediate以 {immediate: true} 监听值的简写形式AUTO
watchOnce以 { once: true } 监听值的简写形式AUTO
watchPausable可暂停的监听AUTO
watchThrottled节流监听AUTO
watchTriggerable可手动触发的监听AUTO
watchWithFilter带有额外 EventFilter 控制的 watchAUTO
whenever监听值为真值的简写形式AUTO
响应性
函数描述调用方式
computedAsync用于异步函数的计算属性AUTO
computedEager不进行惰性求值的即时计算属性AUTO
computedWithControl显式定义计算属性的依赖项AUTO
createRef根据 deep 参数返回 deepRef 或 shallowRefAUTO
extendRef为 Ref 添加额外属性AUTO
reactify将普通函数转换为响应式函数AUTO
reactifyObject对对象应用 reactifyAUTO
reactiveComputed计算得到的响应式对象AUTO
reactiveOmit响应式地忽略响应式对象中的字段AUTO
reactivePick响应式地选取响应式对象中的字段AUTO
refAutoReset一段时间后自动重置为默认值的 refAUTO
refDebounced对 ref 值的执行进行防抖AUTO
refDefault为 ref 应用默认值AUTO
refManualReset创建带有手动重置功能的 refAUTO
refThrottled对 ref 值的变更进行节流AUTO
refWithControl对 ref 及其响应性进行精细控制AUTO
syncRef双向 ref 同步AUTO
syncRefs使目标 refs 与源 ref 保持同步AUTO
toReactive将 ref 转换为响应式对象AUTO
toRef将值/ref/getter 规范化为 ref 或 computedEXPLICIT_ONLY
toRefs扩展版 toRefs,还接受对象的 refsAUTO
数组
函数描述调用方式
useArrayDifference响应式获取两个数组的差集AUTO
useArrayEvery响应式 Array.everyAUTO
useArrayFilter响应式 Array.filterAUTO
useArrayFind响应式 Array.findAUTO
useArrayFindIndex响应式 Array.findIndexAUTO
useArrayFindLast响应式 Array.findLastAUTO
useArrayIncludes响应式 Array.includesAUTO
useArrayJoin响应式 Array.joinAUTO
useArrayMap响应式 Array.mapAUTO
useArrayReduce响应式 Array.reduceAUTO
useArraySome响应式 Array.someAUTO
useArrayUnique响应式唯一数组AUTO
useSorted响应式数组排序AUTO
时间
函数描述调用方式
useCountdown响应式倒计时器(秒)AUTO
useDateFormat根据传入的令牌字符串获取格式化日期AUTO
useTimeAgo响应式相对时间AUTO
useTimeAgoIntl支持国际化的响应式相对时间AUTO
实用工具
函数描述调用方式
createDisposableDirective用于编写可释放指令的实用工具AUTO
createEventHook用于创建事件钩子的实用工具AUTO
createUnrefFn创建一个可接受 ref 和原始值作为参数的普通函数AUTO
get访问 ref.value 的简写EXPLICIT_ONLY
isDefined用于 Ref 的非空类型守卫AUTO
makeDestructurable使对象和数组同时支持同构解构AUTO
setref.value = x 的简写EXPLICIT_ONLY
useAsyncQueue按顺序执行每个异步任务,并将当前任务的结果传递给下一个任务AUTO
useBase64响应式地进行 Base64 转换AUTO
useCached使用自定义比较器缓存一个 refAUTO
useCloned响应式地克隆一个 refAUTO
useConfirmDialog创建事件钩子以支持模态框和确认对话框链AUTO
useCounter带有实用函数的基础计数器AUTO
useCycleList循环遍历项目列表AUTO
useDebounceFn对函数执行进行防抖AUTO
useEventBus基础事件总线AUTO
useMemoize根据参数缓存函数结果并保持其响应性AUTO
useOffsetPagination响应式偏移分页AUTO
usePrevious保存 ref 的上一个值AUTO
useStepper提供用于构建多步向导界面的辅助函数AUTO
useSupported兼容 SSR 的 isSupportedAUTO
useThrottleFn对函数执行进行节流AUTO
useTimeoutPoll使用超时轮询某项内容AUTO
useToggle带有实用函数的布尔切换器AUTO
useToNumber响应式地将字符串 ref 转换为数字AUTO
useToString响应式地将 ref 转换为字符串AUTO
@Electron
函数描述调用方式
useIpcRenderer提供 ipcRenderer 及其所有 API,并支持 Vue 响应性EXTERNAL
useIpcRendererInvoke响应式的 ipcRenderer.invoke API 结果EXTERNAL
useIpcRendererOn轻松使用 ipcRenderer.on,并在卸载时自动调用 ipcRenderer.removeListenerEXTERNAL
useZoomFactor响应式的 WebFrame 缩放因子EXTERNAL
useZoomLevel响应式的 WebFrame 缩放级别EXTERNAL
@Firebase
函数描述调用方式
useAuth响应式 Firebase Auth 绑定EXTERNAL
useFirestore响应式 Firestore 绑定EXTERNAL
useRTDB响应式 Firebase Realtime Database 绑定EXTERNAL
@Head
函数描述调用方式
createHead创建 head 管理器实例。EXTERNAL
useHead响应式更新 head 元标签。EXTERNAL
@Integrations
函数描述调用方式
useAsyncValidatorasync-validator 的封装EXTERNAL
useAxiosaxios 的封装EXTERNAL
useChangeCasechange-case 的响应式封装EXTERNAL
useCookiesuniversal-cookie 的封装EXTERNAL
useDrauudrauu 的响应式实例EXTERNAL
useFocusTrapfocus-trap 的响应式封装EXTERNAL
useFuse使用 Fuse.js 通过组合式函数轻松实现模糊搜索EXTERNAL
useIDBKeyvalidb-keyval 的封装EXTERNAL
useJwtjwt-decode 的封装EXTERNAL
useNProgressnprogress 的响应式封装EXTERNAL
useQRCodeqrcode 的封装EXTERNAL
useSortablesortable 的封装EXTERNAL
@Math
函数描述调用方式
createGenericProjectioncreateProjection 的通用版本EXTERNAL
createProjection在一个定义域到另一个定义域之间进行响应式数值投影EXTERNAL
logicAndref 的 AND 条件EXTERNAL
logicNotref 的 NOT 条件EXTERNAL
logicOrref 的 OR 条件EXTERNAL
useAbs响应式 Math.absEXTERNAL
useAverage响应式地获取数组的平均值EXTERNAL
useCeil响应式 Math.ceilEXTERNAL
useClamp响应式地将一个值限制在另外两个值之间EXTERNAL
useFloor响应式 Math.floorEXTERNAL
useMath响应式 Math 方法EXTERNAL
useMax响应式 Math.maxEXTERNAL
useMin响应式 Math.minEXTERNAL
usePrecision响应式地设置数字的精度EXTERNAL
useProjection在一个定义域到另一个定义域之间进行响应式数值投影EXTERNAL
useRound响应式 Math.roundEXTERNAL
useSum响应式地获取数组的总和EXTERNAL
useTrunc响应式 Math.truncEXTERNAL
@Motion
函数描述调用方式
useElementStyle将响应式对象同步到目标元素的 CSS 样式EXTERNAL
useElementTransform将响应式对象同步到目标元素的 CSS 变换。EXTERNAL
useMotion让组件动起来。EXTERNAL
useMotionProperties访问目标元素的 Motion 属性。EXTERNAL
useMotionVariants处理变体状态和选择。EXTERNAL
useSpring弹簧动画。EXTERNAL
@Router
函数描述调用方式
useRouteHash响应式 route.hash 的简写EXTERNAL
useRouteParams响应式 route.params 的简写EXTERNAL
useRouteQuery响应式 route.query 的简写EXTERNAL
@RxJS
函数描述调用方式
fromRxJS 的 from() 和 fromEvent() 的封装,使其能够接受 refEXTERNAL
toObserver将 ref 转换为 RxJS Observer 的便捷函数EXTERNAL
useExtractedObservable使用从一个或多个组合式函数中提取的 RxJS ObservableEXTERNAL
useObservable使用 RxJS ObservableEXTERNAL
useSubject将 RxJS Subject 绑定到 ref,并双向传播值变化EXTERNAL
useSubscription使用 RxJS Subscription,无需担心取消订阅或造成内存泄漏EXTERNAL
watchExtractedObservable监视从一个或多个组合式函数中提取的 RxJS Observable 的值EXTERNAL
@SchemaOrg
函数描述调用方式
createSchemaOrg创建 schema.org 管理器实例。EXTERNAL
useSchemaOrg响应式更新 schema.org。EXTERNAL
@Sound
函数描述调用方式
useSound响应式播放音效。EXTERNAL

评论

支持 Markdown