Skills Agentes

Create Adaptable Composable

Crea un composable Vue de nivel librería que acepta entradas maybe-reactive (MaybeRef / MaybeRefOrGetter), normalizadas con toValue()/toRef() dentro de watch/watchEffect.

Estrellas
2.8k

en todo el repo

Actividad
27

0–100, la ruta de este skill

Actualizado
hace 6 meses

último commit aquí

Commits
0

últimos 90 días

Contexto
668 tok

90 tok en reposo

Paquete
1 archivo

3 KB

Instalar

Funciona con cualquier agente que lea SKILL.md

npx -y skills add vuejs-ai/skills --skill create-adaptable-composable --agent claude-code

Se instala solo en este repositorio.

Qué hace

  • Diseña composables Vue que aceptan valores planos, refs o getters como parámetros
  • Normaliza entradas con toValue()/toRef() dentro de watch/watchEffect
  • Aplica las políticas MaybeRef vs MaybeRefOrGetter según si el parámetro es de solo lectura o escribible

Úsalo cuando

  • El usuario pide crear composables adaptables o reutilizables

No lo uses cuando

    Qué lo activa

    Di cualquiera de estas frases y el agente debería cargar este skill.

    • Crea un composable useDocumentTitle que acepte un ref o un valor plano
    • Necesito un composable reutilizable useCounter con entrada MaybeRef
    • Cómo normalizo inputs reactivos en mi composable con toValue

    SKILL.md

    En inglés

    Create Adaptable Composable

    Adaptable composables are reusable functions that can accept both reactive and non-reactive inputs. This allows developers to use the composable in a variety of contexts without worrying about the reactivity of the inputs.

    Steps to design an adaptable composable in Vue.js:

    1. Confirm the composable's purpose and API design and expected inputs/outputs.
    2. Identify inputs params that should be reactive (MaybeRef / MaybeRefOrGetter).
    3. Use toValue() or toRef() to normalize inputs inside reactive effects.
    4. Implement the core logic of the composable using Vue's reactivity APIs.

    Core Type Concepts

    Type Utilities

    /**
     * value or writable ref (value/ref/shallowRef/writable computed)
     */
    export type MaybeRef<T = any> = T | Ref<T> | ShallowRef<T> | WritableComputedRef<T>;
    
    /**
     * MaybeRef<T> + ComputedRef<T> + () => T
     */
    export type MaybeRefOrGetter<T = any> = MaybeRef<T> | ComputedRef<T> | (() => T);
    

    Policy and Rules

    • Read-only, computed-friendly input: use MaybeRefOrGetter
    • Needs to be writable / two-way input: use MaybeRef
    • Parameter might be a function value (callback/predicate/comparator): do not use MaybeRefOrGetter, or you may accidentally invoke it as a getter.
    • DOM/Element targets: if you want computed/derived targets, use MaybeRefOrGetter.

    When MaybeRefOrGetter or MaybeRef is used:

    • resolve reactive value using toRef() (e.g. watcher source)
    • resolve non-reactive value using toValue()

    Examples

    Adaptable useDocumentTitle Composable: read-only title parameter

    import { watch, toRef } from 'vue'
    import type { MaybeRefOrGetter } from 'vue'
    
    export function useDocumentTitle(title: MaybeRefOrGetter<string>) {
      watch(toRef(title), (t) => {
        document.title = t
      }, { immediate: true })
    }
    

    Adaptable useCounter Composable: two-way writable count parameter

    import { watch, toRef } from 'vue'
    import type { MaybeRef } from 'vue'
    
    function useCounter(count: MaybeRef<number>) {
      const countRef = toRef(count)
      function add() {
        countRef.value++
      }
      return { add }
    }
    

    Reproducido de vuejs-ai/skills bajo licencia MIT. Leer esta página en markdown.

    Archivos

    1 archivo en el paquete. Solo se lee SKILL.md al activarse — las referencias se cargan si el skill decide que las necesita.

    Antes de instalar

    Requiere un proyecto Vue 3 (o superior) o Nuxt 3 (o superior).

    Detalles

    Creador
    vuejs-ai
    Licencia
    MIT
    Recursos incluidos
    Solo SKILL.md
    Repositorio
    vuejs-ai/skills
    Código fuente
    Ver SKILL.md

    Más de vuejs-ai/skills

    Este repo incluye 8 skills. Si instalas uno, normalmente ya tienes los demás.

    Debe usarse para tareas de Vue.js: recomienda Composition API con `<script setup>` y TypeScript. Cubre Vue 3, SSR, Volar, vue-tsc, Vue Router, Pinia y Vite.

    Costo de contexto al activarse
    2.2k tok
    Tamaño del paquete
    23 archivos
    Última actualización
    hace 6 meses
    herramientas desarrollo

    Depuración y manejo de errores en Vue 3: errores en tiempo de ejecución, warnings, fallos async y problemas de SSR/hidratación. Úsalo al diagnosticar o corregir problemas de Vue.

    Costo de contexto al activarse
    5.2k tok
    Tamaño del paquete
    140 archivos
    Última actualización
    hace 6 meses
    herramientas desarrollo

    Sintaxis JSX en Vue (por ejemplo, class frente a className, configuración del plugin JSX).

    Costo de contexto al activarse
    98 tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 6 meses
    herramientas desarrollo

    Estilo Options API de Vue 3 (data(), methods, contexto this). Cada referencia muestra únicamente la solución en Options API.

    Costo de contexto al activarse
    462 tok
    Tamaño del paquete
    11 archivos
    Última actualización
    hace 6 meses
    herramientas desarrollo

    Buenas prácticas de Pinia: configuración de stores, patrones de gestión de estado y reactividad con stores.

    Costo de contexto al activarse
    293 tok
    Tamaño del paquete
    7 archivos
    Última actualización
    hace 6 meses
    herramientas desarrollo

    Patrones de Vue Router 4, navigation guards, parámetros de ruta e interacciones del ciclo de vida ruta-componente.

    Costo de contexto al activarse
    373 tok
    Tamaño del paquete
    9 archivos
    Última actualización
    hace 6 meses
    herramientas desarrollo

    Skills relacionados

    Úsalo cuando la implementación esté completa, todos los tests pasen, y necesites decidir cómo integrar el trabajo.

    Costo de contexto al activarse
    1.9k tok
    Tamaño del paquete
    1 archivo
    Última actualización
    hace 4 días
    herramientas desarrollo

    Úsalo al empezar trabajo de feature que necesita aislamiento del workspace actual, o antes de ejecutar planes de implementación: asegura un workspace aislado vía herramientas nativas o fallback a git worktree.

    Costo de contexto al activarse
    1.7k tok
    Tamaño del paquete
    1 archivo
    Última actualización
    el mes pasado
    herramientas desarrollo

    Úsala al crear nuevas skills, editar skills existentes o verificar que funcionan antes de desplegarlas.

    Costo de contexto al activarse
    6.6k tok
    Tamaño del paquete
    7 archivos
    Última actualización
    hace 4 días
    herramientas desarrollo