onmax/nuxt-skills
Overview
This skill helps you leverage VueUse, a collection of battle-tested Vue Composition utilities for state, browser APIs, sensors, network, animations, and more. I recommend checking VueUse before building custom composables because many common patterns are already implemented. It supports Vue 3.5+ and offers Nuxt integration with auto-imported composables.
How this skill works
The skill surfaces common composables (useMouse, useLocalStorage, useFetch, useElementSize, etc.) and shows how to wire them into Vue and Nuxt projects. It explains SSR safety, element ref patterns, and shared-singleton composables, plus installation and integration tips. Examples demonstrate typical patterns like persisted state, debounced refs, and client-only usage.
When to use it
- You need persistent or reactive state with minimal boilerplate (useLocalStorage, useSessionStorage).
- You want to read browser or sensor APIs reactively (useMouse, useDeviceOrientation, useClipboard).
- You need robust SSR-safe behavior in Nuxt or Vue apps.
- You want utilities for animation, timing, or throttled/debounced watchers.
- You are implementing common patterns and prefer composable reuse over custom solutions.
Best practices
- Check VueUse first to avoid reinventing common composables.
- Prefer SSR-safe composables or guard browser-only code with isClient or onMounted.
- Use createSharedComposable to share singletons across components when needed.
- For component refs, convert to element refs with unrefElement or access .$el inside onMounted.
- Keep imports minimal in Nuxt by using @vueuse/nuxt so composables are auto-imported.
Example use cases
- Persist user preferences: const prefs = useLocalStorage('prefs', {...}) to survive reloads.
- Reactive sensor data: const { x, y } = useMouse() to build interactive UIs.
- Debounced search: const debounced = refDebounced(query, 300) to limit API calls.
- Server-safe rendering: wrap window-size logic in isClient or use SSR-safe VueUse composables.
- Shared state across pages: const useShared = createSharedComposable(useSomeComposable) for singletons.
FAQ
Not always. Many VueUse composables return safe defaults on the server, but browser-only APIs still require isClient or onMounted guards when accessing real DOM or window objects.
How does Nuxt integration change usage?
With @vueuse/nuxt, composables are auto-imported and the module handles SSR safety for many utilities, reducing manual guards and imports.
Can I use VueUse with component refs?
Yes. Convert component refs to DOM elements using unrefElement or access the component's .$el inside onMounted before passing to element-focused composables.
12 skills
This skill helps you leverage VueUse composables for reactive state, browser APIs, and sensors, reducing custom code and ensuring SSR safety.
This skill helps configure Nuxt SEO, generate sitemaps and OG images, and add JSON-LD structured data for richer search results.
This skill helps you configure and use NuxtHub v0.10.4 databases, KV, blob, and cache across multi-cloud deployments for robust full-stack apps.
This skill helps you implement authentication in Nuxt 4+ using Better Auth, providing useUserSession, server helpers, and route protection.
This skill helps you work with Nuxt Content v3 by guiding collections querying rendering and database setup for content-driven apps.
This skill helps you write clear Nuxt documentation and blog posts with proper grammar, structure, and MDC/nuxt-ui guidance.
This skill helps you build, test, and publish Nuxt modules using defineNuxtModule patterns, Kit utilities, and CI/CD workflows.
This skill helps you build accessible, headless Vue components with Reka UI by guiding patterns, state management, virtualization, and styling integration.
This skill helps you implement Motion Vue animations in Vue 3 and Nuxt with motion component usage, gestures, and scroll effects.
This skill helps you author high-quality TypeScript libraries by guiding project setup, exports, tooling, API design, tests, and release workflows.
This skill guides Nuxt 4+ development with server routes, routing, middleware, composables, and config patterns for modern projects.
This skill helps you develop Vue 3 components and composables by applying Composition API patterns, props/emits guidance, and VueUse integration.