Skip to content

第1章:Next.js 入门认知

1.1 什么是 Next.js?(核心定义、与 React 的关系)

Next.js 是一个基于 React 的开源前端框架,由 Vercel 团队(原 Zeit)维护,旨在提供最佳的 React 应用开发体验。它是 React 的官方框架,为 React 应用提供了服务器端渲染、静态站点生成、路由等核心功能。

核心定义

  • Next.js 是 React 的官方框架:由 React 团队推荐,为 React 应用提供了完整的解决方案
  • 全栈框架:不仅处理前端渲染,还提供后端 API 功能
  • 约定大于配置:基于文件系统的路由、组件自动导入等特性,减少配置复杂度
  • 性能优化:内置图片优化、字体优化、代码分割等性能提升功能

与 React 的关系

  • 基于 React:Next.js 构建在 React 之上,使用 React 作为 UI 库
  • 扩展 React:为 React 添加了服务端渲染、路由、API 等功能
  • 增强开发体验:提供了更好的开发工具和构建优化
  • 官方推荐:React 官方文档推荐使用 Next.js 作为生产级 React 应用的框架

1.2 Next.js 14 核心特性(App Router、Server Components、Turbo 打包等)

Next.js 14 是 Next.js 的最新稳定版本,带来了以下核心特性:

App Router

  • 基于文件夹的路由:在 app 目录下通过文件夹结构定义路由
  • 布局系统:通过 layout.js 文件定义嵌套布局
  • 路由分组:使用 (group) 语法对路由进行逻辑分组,不影响 URL 路径
  • 加载状态:通过 loading.js 文件定义加载状态
  • 错误处理:通过 error.js 文件定义错误边界

Server Components

  • 服务端组件:默认情况下,组件在服务端渲染,减少客户端 bundle 大小
  • 客户端组件:通过 'use client' 指令标记需要在客户端运行的组件
  • 自动代码分割:根据组件类型自动分割代码
  • 更好的性能:减少客户端 JavaScript 体积,提升加载速度

Turbo 打包

  • 更快的构建速度:使用 Turbopack 替代 Webpack,构建速度提升 70%
  • 增量构建:只重新构建修改的文件,进一步提升开发效率
  • 更好的缓存策略:智能缓存构建结果

其他核心特性

  • 图片优化:内置 Image 组件,自动优化图片加载
  • 字体优化:通过 next/font 自动优化字体加载
  • API 路由:在 app/api 目录下创建 API 端点
  • 中间件:通过 middleware.js 实现路由拦截和权限控制
  • 静态站点生成:支持静态生成和增量静态再生

1.3 Next.js 与 React、Nuxt.js 的区别(新手选型参考)

Next.js vs React

特性Next.jsReact
路由内置基于文件系统的路由需要额外使用 React Router
渲染方式支持 SSR、SSG、ISR仅支持 CSR
API 功能内置 API 路由需要单独搭建后端
性能优化内置图片、字体优化需要手动配置
开发体验零配置,约定大于配置需要手动配置构建工具

Next.js vs Nuxt.js

特性Next.jsNuxt.js
基础框架ReactVue
路由系统App Router(基于文件夹)基于文件系统的路由
服务端渲染支持 SSR、SSG、ISR支持 SSR、SSG、ISR
API 路由内置 API 路由内置 API 路由
生态系统React 生态Vue 生态
学习曲线相对平缓,React 基础即可需要 Vue 基础

新手选型建议

  • 选择 Next.js:如果你熟悉 React,或想使用 React 生态
  • 选择 Nuxt.js:如果你熟悉 Vue,或想使用 Vue 生态
  • 直接使用 React:如果项目简单,不需要服务端渲染等高级功能

1.4 Next.js 的核心优势(服务端渲染、静态站点生成、路由自动配置等)

服务端渲染(SSR)

  • 提高首屏加载速度:服务端直接生成 HTML,减少客户端渲染时间
  • 改善 SEO:搜索引擎可以直接索引服务端生成的 HTML
  • 更好的用户体验:用户可以更快看到内容,减少白屏时间

静态站点生成(SSG)

  • 极致性能:预生成静态 HTML 文件,加载速度极快
  • 低成本部署:可以部署到任何静态文件服务器
  • 高可靠性:没有服务器运行时,减少故障风险

增量静态再生(ISR)

  • 结合 SSG 和 SSR 的优点:预生成静态页面,同时支持按需更新
  • 减少构建时间:不需要重新构建整个站点
  • 保持内容新鲜:可以定期更新静态页面

路由自动配置

  • 基于文件系统:在 app 目录下创建文件夹和文件即可定义路由
  • 无需手动配置:减少路由配置的复杂度和错误
  • 支持动态路由:通过 [id] 语法创建动态路由
  • 嵌套路由:支持创建嵌套页面和布局

其他核心优势

  • 内置 API 路由:无需单独搭建后端,可以在 Next.js 中直接创建 API
  • 图片优化:自动优化图片大小和格式,提升加载速度
  • 字体优化:自动优化字体加载,减少布局偏移
  • 代码分割:自动分割代码,减少初始加载体积
  • 热模块替换:开发时实时更新,提升开发效率

1.5 Next.js 适用场景(企业级官网、博客、电商、后台管理系统等)

企业级官网

  • 优势:服务端渲染提升 SEO,静态站点生成提升性能
  • 适用:公司官网、产品展示网站、营销网站

博客

  • 优势:静态站点生成提升性能,增量静态再生支持定期更新
  • 适用:个人博客、技术博客、企业博客

电商网站

  • 优势:服务端渲染提升首屏加载速度,API 路由简化后端逻辑
  • 适用:电商首页、产品列表页、详情页

后台管理系统

  • 优势:客户端组件支持复杂交互,API 路由简化后端逻辑
  • 适用:企业内部管理系统、内容管理系统

其他适用场景

  • 内容平台:新闻网站、资讯网站
  • ** SaaS 应用**:基于 Next.js 的 SaaS 产品
  • 个人作品集:设计师、开发者作品集
  • 教育平台:在线课程网站、学习平台

1.6 学习路线规划(衔接 React 基础,明确新手学习重点,避免走弯路)

阶段一:前置准备(1-2 周)

  1. React 基础:掌握 React 核心概念,包括组件、props、state、hooks 等
  2. JavaScript 基础:熟悉 ES6+ 语法,包括箭头函数、解构赋值、async/await 等
  3. Node.js 基础:了解 Node.js 基本概念和 npm 包管理

阶段二:Next.js 核心基础(2-3 周)

  1. 项目创建与配置:学习使用 create-next-app 创建项目,了解项目结构
  2. 路由系统:掌握 App Router 的使用,包括静态路由、动态路由、嵌套路由
  3. 页面与组件:学习页面组件和布局组件的编写
  4. Server Components:理解服务端组件和客户端组件的区别与使用

阶段三:核心特性(2-3 周)

  1. 数据获取:学习服务端和客户端的数据获取方法
  2. 状态管理:掌握客户端和服务端状态管理
  3. 样式解决方案:了解 Next.js 中的样式处理方法
  4. API 路由:学习创建 API 端点

阶段四:实战项目(2-4 周)

  1. 基础项目:实现个人博客、待办事项应用
  2. 进阶项目:开发简易电商首页
  3. 部署上线:学习将项目部署到 Vercel 或其他平台

阶段五:进阶提升(1-2 周)

  1. 性能优化:学习 Next.js 的性能优化技巧
  2. 配置进阶:了解 next.config.js 的高级配置
  3. 错误处理:学习 Next.js 中的错误处理机制
  4. 国际化:了解 Next.js 的国际化配置

学习建议

  1. 循序渐进:按照上述阶段顺序学习,不要跳过基础
  2. 动手实践:每个阶段都要完成相应的实战练习
  3. 查阅文档:遇到问题时,参考 Next.js 官方文档
  4. 参与社区:加入 Next.js 社区,与其他开发者交流
  5. 项目驱动:通过实际项目巩固所学知识

小结

本章介绍了 Next.js 的核心概念、特性和适用场景,以及与 React、Nuxt.js 的区别。通过本章的学习,你应该已经对 Next.js 有了初步的了解,为后续的学习打下了基础。

Next.js 是一个功能强大的前端框架,它不仅提供了服务端渲染、静态站点生成等核心功能,还通过 App Router、Server Components 等特性提升了开发体验和性能。无论是企业级官网、博客、电商还是后台管理系统,Next.js 都能满足你的需求。

接下来,我们将学习前端与开发环境的前置准备,为 Next.js 项目的创建和开发做好准备。

© 2026 编程马·菜鸟教程 版权所有