vue

Guide Vue 3 and Nuxt reactivity and state management techniques.

16|Updated Apr 30, 2026
One-click install
npx skills add https://github.com/JCETools-Petra/JCE-Opencode-Tools --skill vue-jcetools-petra
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: vue
Source: https://github.com/JCETools-Petra/JCE-Opencode-Tools/tree/main/config/skills/vue
Command: npx skills add https://github.com/JCETools-Petra/JCE-Opencode-Tools --skill vue-jcetools-petra

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

It prevents slow, inconsistent Vue 3 and Nuxt development by standardizing how you choose reactivity primitives, state management, async patterns, and component communication.

Core Features & Use Cases

  • Vue 3 Reactivity Guidance: Choose between ref(), reactive(), shallowRef(), computed(), watch(), and watchEffect() to match the data shape and side-effect needs.
  • State Management Patterns: Use Pinia for app-wide UI state and shared domain state while keeping parent-child data flow predictable with props and emits.
  • Nuxt & Component Best Practices: Apply SSR-friendly data fetching (useFetch/useAsyncData/useLazyFetch), middleware/plugins structure, and modern <script setup> patterns for typed slots and model binding.

Quick Start

Ask the AI to use the vue skill to refactor a component that currently misuses reactive state and causes unnecessary re-renders, and to propose the correct ref/computed/watch/Pinia approach.

Frequently Asked Questions about vue

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I choose between ref and reactive for Vue 3 composition API state?

Choosing between ref and reactive in Vue 3 depends on data shape and mutability needs. Use ref for primitives and reactive for objects, aligning Vue primitives with side effects to prevent unnecessary re-renders.

What is the best way to manage Vue 3 application state with Pinia?

The best way to manage Vue 3 state with Pinia is using it for app-wide UI and shared domain state. Maintain predictable parent-child data flow by combining Pinia with props and emits while avoiding prop mutation.

How do I fetch data in Nuxt without SSR issues?

To fetch data in Nuxt without SSR issues, apply SSR-friendly idioms like useFetch, useAsyncData, and useLazyFetch. These Nuxt data fetching patterns ensure proper server-side rendering and asynchronous state management.

Why does my Vue component re-render unnecessarily when using reactive state?

Vue components re-render unnecessarily when reactive state is misused. Refactor the component by aligning Vue primitives like ref, computed, and watch correctly with data mutability and side effects to prevent excessive updates.

Does Vue 3 composition API work well with Nuxt middleware and plugins?

Yes, the Vue 3 composition API works seamlessly with Nuxt middleware and plugins. Use modern script setup patterns for typed slots and model binding while structuring your Nuxt middleware and plugins effectively.

When should I not use an event bus for Vue component communication?

You should not use an event bus for Vue component communication when managing shared state. Avoid this anti-pattern by using Pinia for app-wide state and predictable props and emits for parent-child data flow.