网淘吧来吧,欢迎您!

NextJS技能使用说明

2026-03-30 新闻来源:网淘吧 围观:15
电脑广告
手机广告

设置

首次使用时,请阅读setup.md以了解项目集成。

使用场景

用户需要 Next.js 专业知识时——如路由、数据获取、缓存、身份验证或部署。代理负责处理应用路由器模式、服务器/客户端边界以及生产环境优化。

NextJS

架构

项目模式存储在~/nextjs/目录下。请参阅memory-template.md以进行设置。

~/nextjs/
├── memory.md          # Project conventions, patterns
└── projects/          # Per-project learnings

快速参考

主题文件
设置setup.md
内存模板memory-template.md
路由(并行、拦截)routing.md
数据获取与流式传输data-fetching.md
缓存与重新验证caching.md
身份验证auth.md
部署deployment.md

核心规则

1. 默认使用服务端组件

在应用路由器中,所有内容都是服务端组件。仅当需要使用 useState、useEffect、事件处理程序或浏览器 API 时,才添加'use client'。服务端组件不能导入到客户端组件中——应通过子组件形式传递。

2. 在服务端获取数据

在服务端组件中获取数据,而非使用 useEffect。对于并行请求,使用Promise.all。具体模式请参阅data-fetching.md

3. 有意识地缓存

fetch默认具有缓存——对于动态数据,请使用cache: 'no-store'。设置revalidate针对ISR,请参考caching.md获取相关策略。

4. 用于数据变更的服务器操作

在表单提交和数据变更时使用'use server'函数。支持渐进式增强——无需JavaScript即可工作。详见data-fetching.md

5. 环境安全性

NEXT_PUBLIC_前缀的变量会暴露给客户端包。服务器组件可访问所有环境变量。请使用.env.local存储敏感信息。

6. 大数据的流式传输

使用<Suspense>边界逐步流式传输内容。请单独包装加载缓慢的组件。详见data-fetching.md

7. 中间件层级的身份验证

请在中间件中而非页面内保护路由。中间件运行在Edge环境——仅适用于轻量级身份验证检查。详见auth.md.

服务器端 vs 客户端

服务器组件客户端组件
App Router 中的默认设置需要'use client'
可以是异步的不能是异步的
访问后端、环境变量访问钩子、浏览器 API
零 JavaScript 传输JavaScript 传输到浏览器

决策:从服务器组件开始。仅当需要以下功能时添加'use client':useState、useEffect、onClick、浏览器 API。

常见陷阱

陷阱解决方法
在服务器组件中使用router.push使用redirect()
<链接>预取所有预取={false}
下一个/图像无尺寸添加宽度/高度填充
客户端中的元数据移至服务器或生成元数据
用于数据的 useEffect在服务器组件中获取
导入 服务器→客户端作为子组件/属性传递
中间件数据库调用改为调用 API 路由
缺少等待参数(v15)参数在 Next.js 15 中是异步的

Next.js 15 变更

  • 参数searchParams现在是Promise— 必须 await
  • fetch默认不缓存 — 通过cache: 'force-cache'
  • 选择启用使用 React 19 钩子:useActionState

useFormStatus

相关技能使用clawhub install <slug>

  • 安装如果用户确认:
  • react— React 基础与模式
  • typescript— 类型安全以提升开发体验
  • prisma— 用于 Next.js 应用的数据库 ORM
  • tailwindcss— 服务器运行时知识

反馈

  • 如果有用:clawhub star nextjs
  • 保持更新:clawhub 同步

免责申明
部分文章来自各大搜索引擎,如有侵权,请与我联系删除。
打赏
文章底部电脑广告
手机广告位-内容正文底部

相关文章

您是本站第345848名访客 今日有107篇新文章/评论