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 编程马·菜鸟教程 版权所有