Communitygithub.com

nuxt4-patterns

Modèles d'applications Nuxt 4 pour la sécurité d'hydratation, les performances, les règles de routage, le chargement différé et la récupération de données compatible SSR avec useFetch et useAsyncData. À utiliser lors de la création ou de la révision d'une application Nuxt 4, ou du débogage des incohérences d'hydratation et de la récupération de données compatible SSR.

Qu'est-ce que nuxt4-patterns ?

Ce skill fournit des modèles et des bonnes pratiques essentielles pour le développement d'applications Nuxt 4 avec rendu côté serveur (SSR), rendu hybride et règles de routage avancées. Il couvre la sécurité d'hydratation pour éviter les incohérences entre le HTML généré par le serveur et l'état côté client, la récupération de données compatible SSR via `useFetch`, `useAsyncData` et `$fetch`, ainsi que l'optimisation des performances avec le chargement différé des composants et l'hydratation paresseuse. Il détaille également l'utilisation des `routeRules` dans `nuxt.config.ts` pour définir des stratégies de rendu et de mise en cache (prerender, SWR, ISR, SSR désactivé) par groupe de routes. Le skill inclut une liste de vérification pour les révisions de code, ciblant les développeurs utilisant Nuxt 4 avec des environnements comme Claude Code, Cursor ou Codex, afin de garantir des applications robustes, performantes et sans erreurs d'hydratation.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/affaan-m/everything-claude-code/tree/main/skills/nuxt4-patterns

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Modèles Nuxt 4

À utiliser lors de la création ou du débogage d'applications Nuxt 4 avec SSR, rendu hybride, règles de routage ou récupération de données au niveau des pages.

Quand activer

  • Incohérences d'hydratation entre le HTML du serveur et l'état client
  • Décisions de rendu au niveau des routes (prerender, SWR, ISR, ou sections client uniquement)
  • Travail sur les performances lié au chargement différé, à l'hydratation paresseuse ou à la taille des charges utiles
  • Récupération de données de page ou de composant avec useFetch, useAsyncData ou $fetch
  • Problèmes de routage Nuxt liés aux paramètres de route, au middleware ou aux différences SSR/client

Sécurité d'hydratation

  • Gardez le premier rendu déterministe. N'utilisez pas Date.now(), Math.random(), les API propres au navigateur ou les lectures de stockage directement dans l'état du template rendu par SSR.
  • Déplacez la logique propre au navigateur derrière onMounted(), import.meta.client, ClientOnly ou un composant .client.vue lorsque le serveur ne peut pas produire le même balisage.
  • Utilisez la fonction composable useRoute() de Nuxt, et non celle de vue-router.
  • N'utilisez pas route.fullPath pour piloter le balisage rendu par SSR. Les fragments d'URL sont propres au client, ce qui peut créer des incohérences d'hydratation.
  • Considérez ssr: false comme une porte de sortie pour les zones vraiment réservées au navigateur, et non comme un correctif par défaut pour les incohérences.

Récupération de données

  • Préférez await useFetch() pour les lectures d'API compatibles SSR dans les pages et les composants. Il transmet les données récupérées par le serveur dans la charge utile Nuxt et évite une seconde récupération lors de l'hydratation.
  • Utilisez useAsyncData() lorsque le récupérateur n'est pas un simple appel $fetch(), lorsque vous avez besoin d'une clé personnalisée ou lorsque vous composez plusieurs sources asynchrones.
  • Donnez à useAsyncData() une clé stable pour la réutilisation du cache et un comportement de rafraîchissement prévisible.
  • Gardez les gestionnaires de useAsyncData() sans effets secondaires. Ils peuvent s'exécuter pendant le SSR et l'hydratation.
  • Utilisez $fetch() pour les écritures déclenchées par l'utilisateur ou les actions propres au client, et non pour les données de page de premier niveau qui doivent être hydratées à partir du SSR.
  • Utilisez lazy: true, useLazyFetch() ou useLazyAsyncData() pour les données non critiques qui ne doivent pas bloquer la navigation. Gérez status === 'pending' dans l'interface utilisateur.
  • Utilisez server: false uniquement pour les données qui ne sont pas nécessaires au SEO ou au premier affichage.
  • Réduisez la taille de la charge utile avec pick et privilégiez les charges utiles moins profondes lorsque la réactivité profonde n'est pas nécessaire.
const route = useRoute()

const { data: article, status, error, refresh } = await useAsyncData(
  () => `article:${route.params.slug}`,
  () => $fetch(`/api/articles/${route.params.slug}`),
)

const { data: comments } = await useFetch(`/api/articles/${route.params.slug}/comments`, {
  lazy: true,
  server: false,
})

Règles de routage

Préférez routeRules dans nuxt.config.ts pour la stratégie de rendu et de mise en cache :

export default defineNuxtConfig({
  routeRules: {
    '/': { prerender: true },
    '/products/**': { swr: 3600 },
    '/blog/**': { isr: true },
    '/admin/**': { ssr: false },
    '/api/**': { cache: { maxAge: 60 * 60 } },
  },
})
  • prerender : HTML statique au moment de la construction
  • swr : servir le contenu mis en cache et le revalider en arrière-plan
  • isr : régénération statique incrémentielle sur les plates-formes prises en charge
  • ssr: false : route rendue côté client
  • cache ou redirect : comportement de réponse au niveau de Nitro

Choisissez les règles de routage par groupe de routes, et non globalement. Les pages marketing, les catalogues, les tableaux de bord et les API nécessitent généralement des stratégies différentes.

Chargement différé et performances

  • Nuxt divise déjà le code des pages par route. Gardez les limites des routes significatives avant de micro-optimiser les divisions des composants.
  • Utilisez le préfixe Lazy pour importer dynamiquement les composants non critiques.
  • Affichez conditionnellement les composants différés avec v-if afin que le bloc ne soit pas chargé tant que l'interface utilisateur n'en a pas réellement besoin.
  • Utilisez l'hydratation paresseuse pour les interfaces utilisateur interactives situées en dessous de la ligne de flottaison ou non critiques.
<template>
  <LazyRecommendations v-if="showRecommendations" />
  <LazyProductGallery hydrate-on-visible />
</template>
  • Pour les stratégies personnalisées, utilisez defineLazyHydrationComponent() avec une stratégie de visibilité ou d'inactivité.
  • L'hydratation paresseuse de Nuxt fonctionne sur les composants monofichiers. Le passage de nouvelles props à un composant hydraté paresseusement déclenchera l'hydratation immédiatement.
  • Utilisez NuxtLink pour la navigation interne afin que Nuxt puisse précharger les composants de route et les charges utiles générées.

Liste de vérification pour la révision

  • Le premier rendu SSR et le rendu client hydraté produisent le même balisage
  • Les données de la page utilisent useFetch ou useAsyncData, et non $fetch au niveau supérieur
  • Les données non critiques sont différées et disposent d'une interface utilisateur de chargement explicite
  • Les règles de routage correspondent aux exigences de SEO et de fraîcheur de la page
  • Les îles interactives lourdes sont chargées ou hydratées paresseusement

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

accessibility

Design, implement, and audit inclusive digital products using WCAG 2.2 Level AA. Use when building or auditing UI that must meet WCAG 2.2 Level AA, or when reviewing a change for keyboard, contrast, or screen-reader support.

affaan-m/claude-api

Anthropic Claude API patterns for Python and TypeScript. Covers Messages API, streaming, tool use, vision, extended thinking, batches, prompt caching, and Claude Agent SDK. Use when building applications with the Claude API or Anthropic SDKs.

affaan-m/everything-claude-code

End-to-end marketing campaign planning and execution. Covers audience research, positioning, campaign angle definition, landing page copy, email sequences, social posts, ad copy, short-form video scripts, and content calendars. Use as the orchestration layer for multi-channel product launches. Use when planning or executing a multi-channel product launch, or producing landing page, email, social, or ad copy.

affaan-m/everything-claude-code

Development conventions and patterns for everything-claude-code. JavaScript project with conventional commits.

affaan-m/everything-claude-code-conventions

Development conventions and patterns for everything-claude-code. JavaScript project with conventional commits.

affaan-m/frontend-design

Create distinctive, production-grade frontend interfaces with high design quality. Use when the user asks to build web components, pages, or applications and the visual direction matters as much as the code quality.

affaan-m/gget

gget CLI and Python workflow for quick genomic database queries, sequence lookup, BLAST-style searches, enrichment checks, and reproducible bioinformatics evidence logs.

affaan-m/literature-review

Systematic literature-review workflow for academic, biomedical, technical, and scientific topics, including search planning, source screening, synthesis, citation checks, and evidence logging.

affaan-m/motion-ui

Production-ready UI motion system for React/Next.js. Use when implementing animations, transitions, or motion patterns.

affaan-m/project-guidelines-example

Example project-specific skill template based on a real production application.

affaan-m/pubmed-database

Direct PubMed and NCBI E-utilities search workflows for biomedical literature, MeSH queries, PMID lookup, citation retrieval, and API-backed literature monitoring.

affaan-m/scholar-evaluation

Structured scholarly-work evaluation for papers, proposals, literature reviews, methods sections, evidence quality, citation support, and research-writing feedback.

affaan-m/uspto-database

USPTO patent and trademark data workflow for official record lookup, PatentSearch queries, TSDR checks, assignment data, and reproducible IP research logs.

agent-architecture-audit

Full-stack diagnostic for agent and LLM applications. Audits the 12-layer agent stack for wrapper regression, memory pollution, tool discipline failures, hidden repair loops, and rendering corruption. Produces severity-ranked findings with code-first fixes. Essential for developers building agent applications, autonomous loops, or any LLM-powered feature. Use when an agent or LLM feature misbehaves and the failing layer is unknown, or before shipping an agent stack.

agent-eval

Head-to-head comparison of coding agents (Claude Code, Aider, Codex, etc.) on custom tasks with pass rate, cost, time, and consistency metrics. Use when choosing between coding agents, or when a change to an agent setup needs measured pass rate, cost, and time rather than an impression.

agent-harness-construction

Design and optimize AI agent action spaces, tool definitions, and observation formatting for higher completion rates. Use when defining or revising an agent

agentic-engineering

Operate as an agentic engineer using eval-first execution, decomposition, and cost-aware model routing. Use when planning or executing engineering work that agents will carry out end to end.

agentic-os

Build persistent multi-agent operating systems on Claude Code. Covers kernel architecture, specialist agents, slash commands, file-based memory, scheduled automation, and state management without external databases. Use when building a persistent multi-agent system on Claude Code with its own memory, commands, and scheduling.

agent-introspection-debugging

Structured self-debugging workflow for AI agent failures using capture, diagnosis, contained recovery, and introspection reports. Use when an agent run fails and you need a reproducible diagnosis instead of a retry.

agent-payment-x402

Add x402 payment execution to AI agents with per-task budgets, spending controls, and non-custodial wallets. Supports Base through agentwallet-sdk and X Layer through OKX Payments / OKX Agent Payments Protocol. Use when an agent must pay for something itself and needs per-task budgets, spending controls, and a non-custodial wallet.

Skills associés