nuxt4-patterns
Auxilia seu agente a criar aplicações Nuxt 4 com segurança e performance. Entende padrões para carregamento de dados e renderização no servidor.
O que ela faz
Esta ferramenta ajuda a construir sites mais rápidos e confiáveis usando Nuxt 4. Ela garante que a página carregada no servidor seja idêntica à que aparece no navegador, otimiza o carregamento de dados e define como cada página deve ser exibida.
Quando usar
- ✓Ao construir um novo site com Nuxt 4.
- ✓Ao tentar corrigir erros onde a página no servidor e no navegador não batem.
- ✓Ao otimizar a velocidade de carregamento de páginas e dados.
Exemplo do que pedir para a IA
“Como posso garantir que os dados da minha página carreguem corretamente no servidor e no navegador sem erros?”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
Ela analisa seu código Nuxt 4 e sugere as melhores práticas para carregar dados, renderizar páginas e evitar problemas de sincronia entre o servidor e o navegador.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add affaan-m/ECC --skill nuxt4-patternsOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/affaan-m/ECC/main/pi/core/skills/nuxt4-patterns/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Padrões do Nuxt 4
Use ao construir ou depurar aplicativos Nuxt 4 com SSR, renderização híbrida, regras de rota ou busca de dados em nível de página.
Quando Ativar
- Inconsistências de hidratação entre o HTML do servidor e o estado do cliente
- Decisões de renderização em nível de rota, como pré-renderização, SWR, ISR ou seções apenas do cliente
- Trabalho de performance em torno de carregamento preguiçoso (lazy loading), hidratação preguiçosa (lazy hydration) ou tamanho do payload
- Busca de dados de página ou componente com
useFetch,useAsyncDataou$fetch - Problemas de roteamento do Nuxt ligados a parâmetros de rota, middleware ou diferenças SSR/cliente
Segurança de Hidratação
- Mantenha a primeira renderização determinística. Não coloque
Date.now(),Math.random(), APIs exclusivas do navegador ou leituras de armazenamento diretamente no estado do template renderizado pelo SSR. - Mova a lógica exclusiva do navegador para trás de
onMounted(),import.meta.client,ClientOnlyou um componente.client.vuequando o servidor não puder produzir o mesmo markup. - Use o composable
useRoute()do Nuxt, não o devue-router. - Não use
route.fullPathpara controlar o markup renderizado pelo SSR. Fragmentos de URL são exclusivos do cliente, o que pode criar inconsistências de hidratação. - Trate
ssr: falsecomo uma saída de emergência para áreas verdadeiramente exclusivas do navegador, não uma correção padrão para inconsistências.
Busca de Dados
- Prefira
await useFetch()para leituras de API seguras para SSR em páginas e componentes. Ele encaminha dados buscados pelo servidor para o payload do Nuxt e evita uma segunda busca na hidratação. - Use
useAsyncData()quando o fetcher não for uma simples chamada$fetch(), quando precisar de uma chave personalizada ou quando estiver compondo várias fontes assíncronas. - Dê a
useAsyncData()uma chave estável para reutilização de cache e comportamento de atualização previsível. - Mantenha os manipuladores de
useAsyncData()livres de efeitos colaterais. Eles podem ser executados durante o SSR e a hidratação. - Use
$fetch()para escritas acionadas pelo usuário ou ações exclusivas do cliente, não para dados de página de nível superior que devem ser hidratados a partir do SSR. - Use
lazy: true,useLazyFetch()ouuseLazyAsyncData()para dados não críticos que não devem bloquear a navegação. Lide comstatus === 'pending'na UI. - Use
server: falseapenas para dados que não são necessários para SEO ou para a primeira pintura (first paint). - Reduza o tamanho do payload com
picke prefira payloads mais rasos quando a reatividade profunda for desnecessária.
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,
})
Regras de Rota
Prefira routeRules em nuxt.config.ts para estratégia de renderização e cache:
export default defineNuxtConfig({
routeRules: {
'/': { prerender: true },
'/products/**': { swr: 3600 },
'/blog/**': { isr: true },
'/admin/**': { ssr: false },
'/api/**': { cache: { maxAge: 60 * 60 } },
},
})
prerender: HTML estático no momento da compilação (build time)swr: serve conteúdo em cache e revalida em segundo planoisr: regeneração estática incremental em plataformas suportadasssr: false: rota renderizada pelo clientecacheouredirect: comportamento de resposta em nível do Nitro
Escolha regras de rota por grupo de rotas, não globalmente. Páginas de marketing, catálogos, dashboards e APIs geralmente precisam de estratégias diferentes.
Carregamento Preguiçoso e Performance
- O Nuxt já faz code-splitting de páginas por rota. Mantenha os limites de rota significativos antes de micro-otimizar divisões de componentes.
- Use o prefixo
Lazypara importar dinamicamente componentes não críticos. - Renderize condicionalmente componentes preguiçosos com
v-ifpara que o chunk não seja carregado até que a UI realmente precise dele. - Use hidratação preguiçosa para UI interativa abaixo da dobra (below-the-fold) ou não crítica.
<template>
<LazyRecommendations v-if="showRecommendations" />
<LazyProductGallery hydrate-on-visible />
</template>
- Para estratégias personalizadas, use
defineLazyHydrationComponent()com uma estratégia de visibilidade ou ociosidade (idle). - A hidratação preguiçosa do Nuxt funciona em componentes de arquivo único (single-file components). Passar novas props para um componente hidratado preguiçosamente acionará a hidratação imediatamente.
- Use
NuxtLinkpara navegação interna para que o Nuxt possa pré-buscar componentes de rota e payloads gerados.
Lista de Verificação de Revisão
- A primeira renderização SSR e a renderização do cliente hidratada produzem o mesmo markup
- Os dados da página usam
useFetchouuseAsyncData, não$fetchde nível superior - Dados não críticos são preguiçosos e têm UI de carregamento explícita
- As regras de rota correspondem aos requisitos de SEO e frescor da página
- Ilhas interativas pesadas são carregadas preguiçosamente ou hidratadas preguiçosamente
Perguntas frequentes
O que é 'hydration mismatch'?
É um erro que acontece quando o conteúdo gerado no servidor é diferente do conteúdo que o navegador tenta mostrar, causando falhas visuais ou de funcionalidade.
O que são 'route rules'?
São regras que você define para dizer ao Nuxt como cada parte do seu site deve se comportar, como ser pré-renderizado, atualizado em segundo plano ou renderizado apenas no navegador.
Por que usar `useFetch` ou `useAsyncData` em vez de `$fetch`?
Essas funções são otimizadas para Nuxt e garantem que os dados carregados no servidor sejam passados para o navegador de forma eficiente, evitando carregamentos duplicados e melhorando a performance.
Detalhes
Descrição original do autor
Nuxt 4 app patterns for hydration safety, performance, route rules, lazy loading, and SSR-safe data fetching with useFetch and useAsyncData. Use when building or reviewing a Nuxt 4 app, or debugging hydration mismatches and SSR-safe data fetching.
repo: affaan-m/ECC
Popularidade
- Estrelas no GitHub
- 280 mil
- Posição no ranking
- #93
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
accessibility
Ajuda seu agente a criar interfaces que todos possam usar. Garante que sites e aplicativos funcionem bem para pessoas com deficiência, como cegos ou com mobilidade reduzida.
affaan-m/ECC
agent-architecture-audit
Faz seu agente verificar se tudo está funcionando corretamente. Ele encontra e conserta problemas em sistemas de IA, garantindo que funcionem como esperado.
affaan-m/ECC
agent-eval
Ajuda seu agente a comparar diferentes ferramentas de programação de IA. Ele mede qual é mais rápido, barato e confiável para realizar tarefas específicas.
affaan-m/ECC
agent-harness-construction
Faz seu agente entender melhor como realizar tarefas. Ele otimiza as ferramentas e instruções que o agente usa para aumentar suas chances de sucesso.
affaan-m/ECC
Skills parecidas
web-artifacts-builder
Ajuda seu agente a construir artefatos HTML complexos com tecnologias modernas. Ideal para interfaces com gerenciamento de estado e componentes avançados.
anthropics/skills
frontend-ui-engineering
Ajuda seu agente a criar interfaces de usuário bonitas e fáceis de usar. Faz com que o resultado pareça profissional e funcione bem em diferentes dispositivos.
addyosmani/agent-skills
export-nextjs-handoff
Faz seu agente transformar designs em código Next.js. Ele cria componentes, estilos e notas para facilitar o trabalho do desenvolvedor.
nexu-io/open-design