我的博客
返回文章列表
技术

Next.js App Router 完全指南:从零开始掌握新范式

2026年4月10日·12 分钟阅读
#Next.js#React#前端

# Next.js App Router 完全指南

Next.js 13+ 的 App Router 是一次重大范式转变,它将 React Server Components (RSC) 带到了生产环境。

## 核心概念

### Server Components vs Client Components

服务器组件是 App Router 的默认组件类型,它们在服务器端渲染,可以直接访问数据库、文件系统等服务端资源。

客户端组件需要在文件顶部添加 'use client' 指令,用于需要交互性、状态管理或浏览器 API 的场景。

### 数据获取

App Router 推荐在服务器组件中直接 fetch 数据,无需 useEffect 或 SWR:

async function PostDetail({ params }) {
const post = await db.query.posts.findFirst({
where: eq(posts.slug, params.slug)
})

if (!post) notFound()

return <article>{post.content}</article>
}

## 路由约定

App Router 基于文件系统的路由约定:

app/
├── layout.tsx 根布局
├── page.tsx 首页 /
├── blog/
│ ├── page.tsx /blog
│ └── [slug]/
│ └── page.tsx /blog/:slug
└── about/
└── page.tsx /about

## 最佳实践

1. 默认使用 Server Components,只在需要交互时使用 Client Components
2. 在叶子组件获取数据,避免 prop drilling
3. 使用 loading.tsx 提供流式加载体验
4. 利用 generateStaticParams 预生成静态页面

这是我在实际项目中最喜欢的特性之一,希望对你有帮助!

觉得这篇文章有帮助?

分享给更多感兴趣的朋友

复制链接