소스 정보
- 저장소
- affaan-m/ECC
- 최근 소스 활동
- 2026년 3월 21일 04:55
- 감지된 SKILL.md 언어
- 중국어
- 스타
- 240,467
- 포크
- 36,484
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/affaan-m/ECC --skill nuxt4-patterns명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SOC 직업 분류 기준
SKILL.md 표시 중
| name | nuxt4-patterns |
| description | Nuxt 4 应用模式,涵盖水合安全、性能优化、路由规则、懒加载,以及使用 useFetch 和 useAsyncData 进行 SSR 安全的数据获取。 |
| origin | ECC |
在构建或调试具有 SSR、混合渲染、路由规则或页面级数据获取的 Nuxt 4 应用时使用。
useFetch、useAsyncData 或 $fetch 进行页面或组件数据获取Date.now()、Math.random()、仅限浏览器的 API 或存储读取直接放入 SSR 渲染的模板状态中。onMounted()、import.meta.client、ClientOnly 或 .client.vue 组件后面。useRoute() 组合式函数,而不是来自 vue-router 的那个。route.fullPath 来驱动 SSR 渲染的标记。URL 片段是仅客户端的,这可能导致水合不匹配。ssr: false 视为真正仅限浏览器区域的逃生舱口,而不是解决不匹配的默认修复方法。await useFetch() 进行 SSR 安全的 API 读取。它将服务器获取的数据转发到 Nuxt 有效负载中,并避免在水合时进行第二次获取。$fetch() 调用,或者需要自定义键,或者正在组合多个异步源时,使用 useAsyncData()。useAsyncData() 提供一个稳定的键以重用缓存并实现可预测的刷新行为。useAsyncData() 处理程序无副作用。它们可能在 SSR 和水合期间运行。$fetch() 用于用户触发的写入或仅客户端操作,而不是应该从 SSR 水合而来的顶级页面数据。lazy: true、useLazyFetch() 或 useLazyAsyncData()。在 UI 中处理 status === 'pending'。server: false。pick 修剪有效负载大小,并在不需要深层响应性时优先使用较浅的有效负载。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,
})
在 nuxt.config.ts 中优先使用 routeRules 来定义渲染和缓存策略:
export default defineNuxtConfig({
routeRules: {
'/': { prerender: true },
'/products/**': { swr: 3600 },
'/blog/**': { isr: true },
'/admin/**': { ssr: false },
'/api/**': { cache: { maxAge: 60 * 60 } },
},
})
prerender:在构建时生成静态 HTMLswr:提供缓存内容并在后台重新验证isr:在支持的平台上进行增量静态再生ssr: false:客户端渲染的路由cache 或 redirect:Nitro 级别的响应行为按路由组选择路由规则,而非全局设置。营销页面、产品目录、仪表板和 API 通常需要不同的策略。
Lazy 前缀来动态导入非关键组件。v-if 有条件地渲染懒加载组件,以便在 UI 实际需要时才加载该代码块。<template>
<LazyRecommendations v-if="showRecommendations" />
<LazyProductGallery hydrate-on-visible />
</template>
defineLazyHydrationComponent() 配合可见性或空闲策略。NuxtLink,以便 Nuxt 可以预取路由组件和生成的有效负载。useFetch 或 useAsyncData,而非顶层的 $fetch