用途:本技能用于构建或调试 Nuxt 4 应用,重点处理 SSR、混合渲染、路由规则和页面级数据获取中的问题。
主要能力: 一、水合安全。要求首次渲染保持确定性,避免把 Date.now()、Math.random()、浏览器 API 或存储读取直接放入 SSR 渲染状态;浏览器专属逻辑应放在 onMounted()、import.meta.client、ClientOnly 或 .client.vue 组件之后。使用 Nuxt 的 useRoute(),而非 vue-router 的。不要用 route.fullPath 驱动 SSR 渲染标记,URL 片段仅客户端可用。ssr: false 只用于真正纯浏览器的区域,不作为修复不匹配的默认手段。 二、数据获取。SSR 安全读取优先用 await useFetch(),它会将服务器端数据带入 payload,避免水合二次请求。需要自定义 key 或组合多个异步源时用 useAsyncData(),并给稳定 key;其处理函数须无副作用。$fetch() 用于用户触发的写操作或客户端行为,不用作顶层页面数据。非关键数据可用 lazy: true、useLazyFetch() 或 useLazyAsyncData(),并在 UI 中处理 pending 状态;server: false 仅用于不影响 SEO 或首屏的数据。可用 pick 减小 payload。 三、路由规则。优先在 nuxt.config.ts 的 routeRules 中配置渲染与缓存:prerender 构建期静态 HTML、swr 后台重验证、isr 增量静态再生、ssr: false 客户端渲染,以及 cache、redirect 等 Nitro 行为。按路由分组选择策略,而非全局统一。 四、懒加载与性能。Nuxt 已按路由代码分割,先保证路由边界合理。用 Lazy 前缀动态导入非关键组件,配合 v-if 控制加载时机;对首屏外或非关键交互 UI 使用懒水合,如 <LazyProductGallery hydrate-on-visible />;自定义策略可用 defineLazyHydrationComponent()。懒水合仅作用于单文件组件,传入新 props 会立即触水合。内部导航用 NuxtLink 以预取。
适用场景:Nuxt 4 的 SSR 与混合渲染、路由规则设计、页面/组件数据获取、性能与 payload 优化。
限制:资料未提供具体安装命令、版本兼容范围、收费信息或平台差异说明。