Communitygithub.com

nuxt4-patterns

Modèles d'application 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 construction 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 un guide complet sur les bonnes pratiques pour développer des applications Nuxt 4 avec un rendu côté serveur (SSR), un rendu hybride, des règles de routage et une récupération de données au niveau des pages. Il est conçu pour aider les développeurs à éviter les erreurs courantes telles que les incohérences d'hydratation, où le HTML généré par le serveur ne correspond pas à l'état initial du client. Il couvre des techniques avancées comme l'utilisation de `useFetch` et `useAsyncData` pour une récupération de données compatible SSR, l'optimisation des performances via le chargement différé et l'hydratation paresseuse, et la configuration de règles de routage (`prerender`, `swr`, `isr`, `ssr: false`) dans `nuxt.config.ts`. Le skill est applicable aux agents utilisant Claude Code, Cursor, Codex ou d'autres outils similaires pour construire ou réviser des applications Nuxt 4, et il se base sur la documentation officielle de Nuxt pour garantir des pratiques à jour et efficaces.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/affaan-m/ECC/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 construction 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 serveur et l'état client
  • Décisions de rendu au niveau des routes comme le pré-rendu, SWR, ISR ou les sections exclusivement client
  • Travail sur les performances autour du chargement différé, de l'hydratation paresseuse ou de la taille des payloads
  • 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 exclusives au navigateur ou les lectures de stockage directement dans l'état du template rendu par SSR.
  • Déplacez la logique exclusive 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 composable useRoute() de Nuxt, pas celle de vue-router.
  • N'utilisez pas route.fullPath pour générer le balisage rendu par SSR. Les fragments d'URL sont exclusifs au client, ce qui peut créer des incohérences d'hydratation.
  • Considérez ssr: false comme une échappatoire pour les zones vraiment exclusives 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 le payload 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 exclusives au client, pas 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 à la première peinture.
  • Réduisez la taille du payload avec pick et préférez des payloads moins profonds lorsque la réactivité profonde est inutile.
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 en cache et le revalider en arrière-plan
  • isr : régénération statique incrémentielle sur les plateformes 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, pas 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 de route significatives avant de micro-optimiser les divisions de composants.
  • Utilisez le préfixe Lazy pour importer dynamiquement les composants non critiques.
  • Rendez conditionnellement les composants différés avec v-if afin que le morceau ne soit chargé que lorsque l'interface utilisateur en a réellement besoin.
  • Utilisez l'hydratation paresseuse pour les éléments interactifs non critiques situés en dessous de la ligne de flottaison.
<template>
  <LazyRecommendations v-if="showRecommendations" />
  <LazyProductGallery hydrate-on-visible />
</template>
  • Pour des stratégies personnalisées, utilisez defineLazyHydrationComponent() avec une stratégie de visibilité ou d'inactivité.
  • L'hydratation paresseuse de Nuxt fonctionne sur les composants à fichier unique. Passer 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 payloads générés.

Liste de vérification

  • Le premier rendu SSR et le rendu client hydraté produisent le même balisage
  • Les données de page utilisent useFetch ou useAsyncData, pas $fetch de premier niveau
  • Les données non critiques sont différées et ont une interface utilisateur de chargement explicite
  • Les règles de routage correspondent aux exigences SEO et de fraîcheur de la page
  • Les îles interactives lourdes sont chargées différément 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/content-engine

Create platform-native content systems for X, LinkedIn, TikTok, YouTube, newsletters, and repurposed multi-platform campaigns. Use when the user wants social posts, threads, scripts, content calendars, or one source asset adapted cleanly across platforms.

affaan-m/ECC

Multi-platform content distribution across X, LinkedIn, Threads, and Bluesky. Adapts content per platform using content-engine patterns. Never posts identical content cross-platform. Use when the user wants to distribute content across social platforms.

affaan-m/fal-ai-media

Unified media generation via fal.ai MCP — image, video, and audio. Covers text-to-image (Nano Banana), text/image-to-video (Seedance, Kling, Veo 3), text-to-speech (CSM-1B), and video-to-audio (ThinkSound). Use when the user wants to generate images, videos, or audio with AI.

affaan-m/manim-video

日本語翻訳:このファイルは manim-video 用の日本語翻訳が必要です

affaan-m/remotion-video-creation

Remotion のベストプラクティス - React で動画を作成する。3D、アニメーション、音声、字幕、チャート、トランジションなどをカバーするドメイン固有の29のルール。

affaan-m/video-editing

AI-assisted video editing workflows for cutting, structuring, and augmenting real footage. Covers the full pipeline from raw capture through FFmpeg, Remotion, ElevenLabs, fal.ai, and final polish in Descript or CapCut. Use when the user wants to edit video, cut footage, create vlogs, or build video content.

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.

agent-self-evaluation

Use after completing any non-trivial task. The agent self-rates its output on 5 axes — accuracy, completeness, clarity, actionability, conciseness — with concrete evidence per criterion. Produces a structured 1-5 scorecard with specific improvement suggestions.

agent-sort

Build an evidence-backed ECC install plan for a specific repo by sorting skills, commands, rules, hooks, and extras into DAILY vs LIBRARY buckets using parallel repo-aware review passes. Use when ECC should be trimmed to what a project actually needs instead of loading the full bundle.

ai-first-engineering

Engineering operating model for teams where AI agents generate a large share of implementation output. Use when setting team process, review gates, or ownership rules for a codebase largely written by agents.

ai-regression-testing

Regression testing strategies for AI-assisted development. Sandbox-mode API testing without database dependencies, automated bug-check workflows, and patterns to catch AI blind spots where the same model writes and reviews code. Use when adding regression coverage to AI-assisted code, or when the same model both wrote and reviewed a change.

android-clean-architecture

Clean Architecture patterns for Android and Kotlin Multiplatform projects — module structure, dependency rules, UseCases, Repositories, and data layer patterns. Use when structuring modules, layers, or data flow in an Android or KMP project.

angular-developer

Generates Angular code and provides architectural guidance. Trigger when creating projects, components, or services, or for best practices on reactivity (signals, linkedSignal, resource), forms, dependency injection, routing, SSR, accessibility (ARIA), animations, styling (component styles, Tailwind CSS), testing, or CLI tooling.

Skills associés