mcpField
V
vueuse-functions

vueuse-functions

github.com/uni-helper开发111607 次安装39 周前更新
代码仓库

关于 vueuse-functions

为 Vue.js 和 Nuxt 项目使用 VueUse 组合式函数提供选择与实现指南,将需求对应到函数,并指向用法和类型参考。

主要功能

  1. 01将需求对应到组合式函数
  2. 02优先使用组合式函数
  3. 03遵循函数调用规则
  4. 04查阅用法与类型参考

适用场景

  1. 01为功能选择 VueUse 函数
  2. 02在 Vue 或 Nuxt 中实现响应式行为

安装

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

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

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

包含的文件

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

LICENSE.md
references/
computedAsync.md
computedEager.md
computedInject.md
computedWithControl.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
provideLocal.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 中对应的文档,了解用法详情和类型声明。

状态
函数描述调用方式
createGlobalState将状态保存在全局作用域,以便在多个 Vue 实例间复用AUTO
createInjectionState创建可注入组件的全局状态AUTO
createSharedComposable使组合式函数可供多个 Vue 实例使用AUTO
injectLocal扩展 inject,支持调用 provideLocal 在同一组件中提供值AUTO
provideLocal扩展 provide,支持调用 injectLocal 在同一组件中获取值AUTO
useAsyncState响应式异步状态AUTO
useDebouncedRefHistory为 useRefHistory 提供防抖筛选器的简写形式AUTO
useLastChanged记录上次变更的时间戳AUTO
useLocalStorage响应式 LocalStorageAUTO
useManualRefHistory在使用者调用 commit() 时,手动跟踪 ref 的变更历史AUTO
useRefHistory跟踪 ref 的变更历史AUTO
useSessionStorage响应式 SessionStorageAUTO
useStorage创建响应式 ref,用于访问和修改 LocalStorage 或 SessionStorageAUTO
useStorageAsync支持异步操作的响应式存储AUTO
useThrottledRefHistory为 useRefHistory 提供节流筛选器的简写形式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
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响应式元素文本的 dir 属性AUTO
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当元素或任何包含它的元素被移除时触发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
网络
函数描述调用方式
useEventSourceEventSource 或 Server-Sent-Events 实例会与 HTTP 服务建立持久连接AUTO
useFetch响应式 Fetch API,支持中止请求AUTO
useWebSocket响应式 WebSocket 客户端AUTO
动画
函数描述调用方式
useAnimate响应式 Web Animations APIAUTO
useInterval响应式计数器,每个间隔递增一次AUTO
useIntervalFn带控制功能的 setInterval 封装AUTO
useNow响应式当前 Date 实例AUTO
useRafFn每次 requestAnimationFrame 时调用函数AUTO
useTimeout在指定时间后更新值,并提供控制功能AUTO
useTimeoutFn带控制功能的 setTimeout 封装AUTO
useTimestamp响应式当前时间戳AUTO
useTransition在不同值之间过渡AUTO
组件
函数描述调用方式
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以 ref 形式获取当前组件的 DOM 元素AUTO
useMounted以 ref 形式表示挂载状态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
时间
函数描述调用方式
useCountdownuseIntervalFn 的封装,提供倒计时功能AUTO
useDateFormat根据传入的令牌字符串获取格式化后的日期AUTO
useTimeAgo响应式相对时间AUTO
useTimeAgoIntl支持国际化的响应式相对时间AUTO
实用工具
函数描述调用方式
createEventHook用于创建事件钩子的实用工具AUTO
createUnrefFn创建一个可接受 ref 和原始值作为参数的普通函数AUTO
get访问 ref.value 的简写EXPLICIT_ONLY
isDefined用于 Ref 的非空类型守卫AUTO
makeDestructurable让对象和数组同时支持解构AUTO
setref.value = x 的简写EXPLICIT_ONLY
useAsyncQueue按顺序执行每个异步任务,并将当前任务的结果传递给下一个任务AUTO
useBase64响应式地转换为 base64AUTO
useCached使用自定义比较器缓存 refAUTO
useClonedref 的响应式克隆AUTO
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 及其所有 APIEXTERNAL
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