Next.js 速查表 - Next.js 框架常用方法大全

Next.js 全栈 React 框架的必备 API 都在这里了,从路由到数据获取、从渲染策略到中间件,按功能分类整理,写代码时直接复制。

Web 服务·共 43 条命令·最后更新 2026-07-21
返回 Web 服务

App Router 基础 5

app/page.tsx
页面组件,默认是服务端组件(Server Component)
app/layout.tsx
根布局或嵌套布局,包裹子页面
app/loading.tsx
加载状态 UI,配合 Suspense 自动显示
app/error.tsx
错误边界 UI,捕获子组件运行时错误
app/not-found.tsx
404 页面,找不到路由时显示

路由与导航 6

useRouter()
客户端路由跳转 Hook,来自 next/navigation
<Link href="/about">
客户端导航组件,自动预取可见链接
usePathname()
获取当前路径名,客户端路由监听用
useSearchParams()
获取 URL 查询参数 Hook
app/blog/[slug]/page.tsx
动态路由,[slug] 是参数占位符
app/(marketing)/about/page.tsx
路由组,不影响 URL 路径

数据获取 6

fetch(url, { cache: "force-cache" })
静态数据获取,默认缓存策略
fetch(url, { cache: "no-store" })
动态数据获取,每次请求重新拉取
fetch(url, { next: { revalidate: 60 } })
ISR 增量静态生成,60 秒后重新验证
generateStaticParams()
静态生成动态路由的路径参数列表
"use server"
标记服务端 Action,在客户端表单中调用
server-only
确保代码只在服务端运行,不会泄漏到客户端

渲染策略 5

export const dynamic = "force-static"
强制静态渲染,构建时生成 HTML
export const dynamic = "force-dynamic"
强制动态渲染,每次请求实时生成
export const revalidate = 3600
页面级 ISR 间隔,单位秒
"use client"
标记为客户端组件,使用浏览器 API 和交互
export const runtime = "edge"
使用 Edge Runtime 运行,延迟更低

布局与模板 5

export const metadata = { title: "页面标题" }
静态元数据,支持 title/description/OG 等
export async function generateMetadata()
动态生成元数据,接收 params 和 searchParams
app/@modal/default.tsx
平行路由插槽,独立渲染区域
app/(...)/[...slug]/page.tsx
拦截路由,在当前布局中拦截外部链接
template.tsx
模板组件,类似 layout 但切换时重新挂载

API 与中间件 6

app/api/route.ts
Route Handler,创建 API 端点
export async function GET(request)
处理 GET 请求的 Route Handler
middleware.ts
中间件文件,在请求前执行路由判断
NextResponse.redirect(new URL("/login", request.url))
中间件中重定向请求
NextResponse.next()
中间件中继续处理请求
cookies().get("token")
服务端读取 Cookie

静态资源与优化 5

import Image from "next/image"
优化图片组件,支持懒加载和 WebP 自动转换
import { Inter } from "next/font/google"
Google 字体优化,自托管避免外部请求
import Script from "next/script"
脚本加载优化,支持 afterInteractive/lazyOnload 策略
export const metadata = { robots: { index: true, follow: true } }
SEO 爬虫配置
<Link href="/about" prefetch={true}>
Link 自动预取,hover 时加载页面资源

部署与配置 5

output: "standalone"
独立部署输出,包含所需依赖,适合 Docker 部署
output: "export"
静态导出为纯 HTML/CSS/JS,可部署到任何静态托管
process.env.NEXT_PUBLIC_API_URL
客户端环境变量,以 NEXT_PUBLIC_ 前缀暴露
next build
生产构建,生成优化后的代码和静态资源
next start
启动生产服务器,读取 .next 目录的构建产物

💡 提示

  • App Router 是 Next.js 13+ 默认路由方案,取代了 Pages Router
  • 页面组件默认是服务端组件(Server Component),需要客户端交互时加 "use client"
  • 使用 next/link 的 Link 组件代替 a 标签,自动预取和客户端导航
  • 数据获取推荐在服务端组件中直接 async/await fetch,无需 useEffect
  • 使用 generateStaticParams 实现静态生成动态路由