К основному содержанию
скилл Claude Code CX Codex Cursor GitHub Copilot

nuxt4-patterns — скилл для Claude: паттерны Nuxt 4

Скилл для работы с Nuxt 4: гидратация, route rules, ленивая загрузка и SSR-безопасный сбор данных через useFetch и useAsyncData.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add affaan-m/ECC --skill nuxt4-patterns -a claude-code
Открыть на GitHub

Что делает nuxt4-patterns

Скилл описывает, как писать и проверять приложения на Nuxt 4. Внутри — разделы про безопасную гидратацию, сбор данных, route rules, ленивую загрузку и чек-лист для ревью. Агент подключает эти правила, когда вы собираете или разбираете Nuxt 4 проект, ловите расхождения между серверной разметкой и клиентским состоянием или настраиваете рендеринг по маршрутам.

По гидратации скилл требует детерминированного первого рендера: Date.now(), Math.random(), браузерные API и чтение storage не должны попадать в SSR-шаблон напрямую. Логику для браузера он советует уводить в onMounted(), import.meta.client, ClientOnly или компонент .client.vue. Для данных — await useFetch() в страницах и компонентах, useAsyncData() со стабильным ключом, когда фетчер сложнее обычного $fetch(). Для некритичных данных — lazy: true, useLazyFetch() или useLazyAsyncData() с обработкой status === 'pending'.

Route rules задаются в nuxt.config.ts по группам маршрутов: prerender, swr, isr, ssr: false, cache или redirect. Скилл прямо говорит не размазывать одну стратегию на весь сайт. Ставить его стоит, если у вас Nuxt 4 с SSR или гибридным рендерингом. Если проект на другой версии или рендерится только на клиенте, пользы почти не будет.

Какие задачи решает

  • убрать расхождения между серверным HTML и клиентским состоянием
  • выбрать стратегию рендеринга для группы маршрутов
  • перевести сбор данных страницы на useFetch вместо $fetch верхнего уровня
  • отложить загрузку некритичных данных и показать статус ожидания
  • уменьшить payload и разбить тяжёлые интерактивные блоки

Примеры запросов агенту

  • Проверь мою Nuxt 4 страницу на hydration mismatches
  • Настрой routeRules для /products/** и /blog/**
  • Перепиши загрузку данных на useAsyncData со стабильным ключом

Как установить nuxt4-patterns

1Через Skills CLI (Vercel)

npx skills add affaan-m/ECC --skill nuxt4-patterns -a claude-code

2Вручную: положить файлы

~/.claude/skills/nuxt4-patterns/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/nuxt4-patterns/

Из того же набора146

Весь набор →
video-editing affaan-m Скилл выстраивает пайплайн монтажа реального видео через ИИ. Помогает нарезать сырые записи через FFmpeg, собрать титры в Remotion и добавить озвучку в ElevenLabs. Claude Code CX Codex Cursor +1 6 500установок docker-patterns affaan-m Скилл с проверенными шаблонами Dockerfile и Docker Compose: локальная разработка, сети, тома, безопасность контейнеров. Claude Code CX Codex Cursor +1 6 300установок frontend-patterns affaan-m Скилл подсказывает паттерны для React и Next.js: компоненты, состояние, загрузка данных и производительность. Нужен при разработке и ревью интерфейса. Claude Code CX Codex Cursor +1 5 900установок backend-patterns affaan-m Скилл с паттернами бэкенда для Node.js, Express и Next.js API routes: слои, кэш, транзакции, обработка ошибок. Claude Code CX Codex Cursor +1 5 900установок coding-standards affaan-m Базовые правила кода для проектов: проверяет именование, запрещает мутации объектов и следит за простыми конструкциями. Пригодится на ревью и рефакторинге. Claude Code CX Codex Cursor +1 5 600установок api-design affaan-m Скилл задаёт правила проектирования REST API: именование эндпоинтов, выбор статус-кодов, пагинацию и формат ошибок. Помогает при создании и ревью серверных контрактов. Claude Code CX Codex Cursor +1 5 500установок rust-testing affaan-m Скилл для написания тестов на Rust: юнит-тесты, интеграционные, async, property-based, моки и покрытие. Пригодится, когда ведёшь проект по TDD. Claude Code CX Codex Cursor +1 5 500установок laravel-security affaan-m Скилл помогает проверять безопасность Laravel-приложений: аутентификацию, Eloquent, CSRF, XSS, API и настройки production. Пригодится для ревью и деплоя. Claude Code CX Codex Cursor +1 5 400установок

Похожие

better-colors jakubkrehel Скилл проверяет палитры и строит систему цветовых токенов. Он нужен, когда в коде накопились случайные hex-значения, а контраст текста никто не считал. Claude Code CX Codex Cursor +1 32 200установок verify react Проверяет код перед коммитом в репозиторий React. Запускает форматирование, линтер, проверку типов Flow и тесты. Claude Code CX Codex Cursor +1 1 200установок web-design-reviewer официальный github Скилл осматривает работающий сайт, находит проблемы с вёрсткой, адаптивностью и доступностью, а затем может исправить их в исходном коде. Подойдёт, когда нужно проверить интерфейс и довести исправления до повторной проверки. GitHub Copilot 13 957установок better-layout jakubkrehel Скилл проверяет и правит группировку, выравнивание, порядок чтения и адаптивную структуру макета, а потом ломает её ресайзом, переводом и зеркалированием под RTL. Claude Code CX Codex Cursor +1 30 400установок frontend-design официальный anthropics Скилл задаёт осмысленное визуальное направление для новых интерфейсов и редизайна. Подойдёт, когда стандартный шаблонный UI не устраивает. Claude Code Claude.ai 1 025 790установок design-taste-frontend Leonxlnx Скилл задаёт арт-дирекцию для публичных страниц и рабочих экранов, а затем проверяет результат в браузере по скриншотам. Нужен, когда интерфейс выглядит шаблонным или недоработанным. Claude Code CX Codex Cursor +1 673 100установок prototype Matt Pocock Создаёт временный прототип, чтобы проверить логику, модель состояния или вид интерфейса до работы над основным кодом. Claude Code 986 201установок hyperframes heygen-com Скилл задаёт агенту правила рендера HTML-кода в видео через HyperFrames. Помогает собирать проморолики, эксплейнеры и титры прямо в коде проекта. Claude Code CX Codex Cursor +1 1 200 000установок

Вопросы о nuxt4-patterns

Как установить nuxt4-patterns в Claude?

Выполните npx skills add affaan-m/ECC --skill nuxt4-patterns -a claude-code. Файл скилла окажется в ~/.claude/skills/nuxt4-patterns/SKILL.md.

Что делает nuxt4-patterns?

Даёт агенту правила по гидратации, сбору данных, route rules и ленивой загрузке в Nuxt 4. Он применяет их при написании и ревью страниц.

Когда скилл включается сам?

При отладке hydration mismatches, работе с useFetch и useAsyncData, настройке route rules и задачах по ленивой загрузке или размеру payload.

Исходный текст

SKILL.md · MIT
---
name: nuxt4-patterns
description: 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.
metadata:
  origin: ECC
---

# Nuxt 4 Patterns

Use when building or debugging Nuxt 4 apps with SSR, hybrid rendering, route rules, or page-level data fetching.

## When to Activate

- Hydration mismatches between server HTML and client state
- Route-level rendering decisions such as prerender, SWR, ISR, or client-only sections
- Performance work around lazy loading, lazy hydration, or payload size
- Page or component data fetching with `useFetch`, `useAsyncData`, or `$fetch`
- Nuxt routing issues tied to route params, middleware, or SSR/client differences

## Hydration Safety

- Keep the first render deterministic. Do not put `Date.now()`, `Math.random()`, browser-only APIs, or storage reads directly into SSR-rendered template state.
- Move browser-only logic behind `onMounted()`, `import.meta.client`, `ClientOnly`, or a `.client.vue` component when the server cannot produce the same markup.
- Use Nuxt's `useRoute()` composable, not the one from `vue-router`.
- Do not use `route.fullPath` to drive SSR-rendered markup. URL fragments are client-only, which can create hydration mismatches.
- Treat `ssr: false` as an escape hatch for truly browser-only areas, not a default fix for mismatches.

## Data Fetching

- Prefer `await useFetch()` for SSR-safe API reads in pages and components. It forwards server-fetched data into the Nuxt payload and avoids a second fetch on hydration.
- Use `useAsyncData()` when the fetcher is not a simple `$fetch()` call, when you need a custom key, or when you are composing multiple async sources.
- Give `useAsyncData()` a stable key for cache reuse and predictable refresh behavior.
- Keep `useAsyncData()` handlers side-effect free. They can run during SSR and hydration.
- Use `$fetch()` for user-triggered writes or client-only actions, not top-level page data that should be hydrated from SSR.
- Use `lazy: true`, `useLazyFetch()`, or `useLazyAsyncData()` for non-critical data that should not block navigation. Handle `status === 'pending'` in the UI.
- Use `server: false` only for data that is not needed for SEO or the first paint.
- Trim payload size with `pick` and prefer shallower payloads when deep reactivity is unnecessary.

```ts
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,
})
```

## Route Rules

Prefer `routeRules` in `nuxt.config.ts` for rendering and caching strategy:

```ts
export default defineNuxtConfig({
  routeRules: {
    '/': { prerender: true },
    '/products/**': { swr: 3600 },
    '/blog/**': { isr: true },
    '/admin/**': { ssr: false },
    '/api/**': { cache: { maxAge: 60 * 60 } },
  },
})
```

- `prerender`: static HTML at build time
- `swr`: serve cached content and revalidate in the background
- `isr`: incremental static regeneration on supported platforms
- `ssr: false`: client-rendered route
- `cache` or `redirect`: Nitro-level response behavior

Pick route rules per route group, not globally. Marketing pages, catalogs, dashboards, and APIs usually need different strategies.

## Lazy Loading and Performance

- Nuxt already code-splits pages by route. Keep route boundaries meaningful before micro-optimizing component splits.
- Use the `Lazy` prefix to dynamically import non-critical components.
- Conditionally render lazy components with `v-if` so the chunk is not loaded until the UI actually needs it.
- Use lazy hydration for below-the-fold or non-critical interactive UI.

```vue
<template>
  <LazyRecommendations v-if="showRecommendations" />
  <LazyProductGallery hydrate-on-visible />
</template>
```

- For custom strategies, use `defineLazyHydrationComponent()` with a visibility or idle strategy.
- Nuxt lazy hydration works on single-file components. Passing new props to a lazily hydrated component will trigger hydration immediately.
- Use `NuxtLink` for internal navigation so Nuxt can prefetch route components and generated payloads.

## Review Checklist

- First SSR render and hydrated client render produce the same markup
- Page data uses `useFetch` or `useAsyncData`, not top-level `$fetch`
- Non-critical data is lazy and has explicit loading UI
- Route rules match the page's SEO and freshness requirements
- Heavy interactive islands are lazy-loaded or lazily hydrated

© affaan-m · MIT · affaan-m/ECC

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой