Install
Terminal · npx$
npx skills add https://github.com/onmax/nuxt-skills --skill vueuseWorks with Paperclip
How Vueuse fits into a Paperclip company.
Vueuse drops into any Paperclip agent that handles this kind of work. Assign it to a specialist inside a pre-configured PaperclipOrg company and the skill becomes available on every heartbeat — no prompt engineering, no tool wiring.
S
SaaS FactoryPaired
Pre-configured AI company — 18 agents, 18 skills, one-time purchase.
$27$59
Explore packSource file
SKILL.md161 linesExpandCollapse
---name: vueusedescription: Use when working with VueUse composables - track mouse position with useMouse, manage localStorage with useStorage, detect network status with useNetwork, debounce values with refDebounced, and access browser APIs reactively. Check VueUse before writing custom composables - most patterns already implemented.license: MIT--- # VueUse Collection of essential Vue Composition utilities. Check VueUse before writing custom composables - most patterns already implemented. **Current stable:** VueUse 14.x for Vue 3.5+ ## Installation **Vue 3:** ```bashpnpm add @vueuse/core``` **Nuxt:** ```bashpnpm add @vueuse/nuxt @vueuse/core``` ```ts// nuxt.config.tsexport default defineNuxtConfig({ modules: ['@vueuse/nuxt'],})``` Nuxt module auto-imports composables - no import needed. ## Categories | Category | Examples || ---------- | ---------------------------------------------------------- || State | useLocalStorage, useSessionStorage, useRefHistory || Elements | useElementSize, useIntersectionObserver, useResizeObserver || Browser | useClipboard, useFullscreen, useMediaQuery || Sensors | useMouse, useKeyboard, useDeviceOrientation || Network | useFetch, useWebSocket, useEventSource || Animation | useTransition, useInterval, useTimeout || Component | useVModel, useVirtualList, useTemplateRefsList || Watch | watchDebounced, watchThrottled, watchOnce || Reactivity | createSharedComposable, toRef, toReactive || Array | useArrayFilter, useArrayMap, useSorted || Time | useDateFormat, useNow, useTimeAgo || Utilities | useDebounce, useThrottle, useMemoize | ## Quick Reference Load composable files based on what you need: | Working on... | Load file || -------------------- | ------------------------------------------------------ || Finding a composable | [references/composables.md](references/composables.md) || Specific composable | `composables/<name>.md` | ## Loading Files **Consider loading these reference files based on your task:** - [ ] [references/composables.md](references/composables.md) - if searching for VueUse composables by category or functionality **DO NOT load all files at once.** Load only what's relevant to your current task. ## Common Patterns **State persistence:** ```tsconst state = useLocalStorage('my-key', { count: 0 })``` **Mouse tracking:** ```tsconst { x, y } = useMouse()``` **Debounced ref:** ```tsconst search = ref('')const debouncedSearch = refDebounced(search, 300)``` **Shared composable (singleton):** ```tsconst useSharedMouse = createSharedComposable(useMouse)``` ## SSR Gotchas Many VueUse composables use browser APIs unavailable during SSR. **Check with `isClient`:** ```tsimport { isClient } from '@vueuse/core' if (isClient) { // Browser-only code const { width } = useWindowSize()}``` **Wrap in onMounted:** ```tsconst width = ref(0) onMounted(() => { // Only runs in browser const { width: w } = useWindowSize() width.value = w.value})``` **Use SSR-safe composables:** ```ts// These check isClient internallyconst mouse = useMouse() // Returns {x: 0, y: 0} on serverconst storage = useLocalStorage('key', 'default') // Uses default on server``` **`@vueuse/nuxt` auto-handles SSR** - composables return safe defaults on server. ## Target Element Refs When targeting component refs instead of DOM elements: ```tsimport type { MaybeElementRef } from '@vueuse/core' // Component ref needs .$el to get DOM elementconst compRef = ref<ComponentInstance>()const { width } = useElementSize(compRef) // ❌ Won't work // Use MaybeElementRef patternimport { unrefElement } from '@vueuse/core' const el = computed(() => unrefElement(compRef)) // Gets .$elconst { width } = useElementSize(el) // ✅ Works``` **Or access `$el` directly:** ```tsconst compRef = ref<ComponentInstance>() onMounted(() => { const el = compRef.value?.$el as HTMLElement const { width } = useElementSize(el)})```Related skills
Document Writer
Install Document Writer skill for Claude Code from onmax/nuxt-skills.
Motion
Install Motion skill for Claude Code from onmax/nuxt-skills.
Nuxt Better Auth
The nuxt-better-auth module provides authentication for Nuxt 4+ applications built on Better Auth, offering composables like useUserSession, server utilities, r