news 2026/9/15 16:12:41

从 create-next-app 到第一个可用页面:Sigma-Web-Dev-Course 的 Next.js 项目启动全指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从 create-next-app 到第一个可用页面:Sigma-Web-Dev-Course 的 Next.js 项目启动全指南

从 create-next-app 到第一个可用页面:Sigma-Web-Dev-Course 的 Next.js 项目启动全指南

【免费下载链接】Sigma-Web-Dev-CourseSource Code for Sigma Web Development Course项目地址: https://gitcode.com/GitHub_Trending/si/Sigma-Web-Dev-Course

本文围绕 Sigma-Web-Dev-Course 仓库中 Video 121/first 这个入门项目展开,讲解如何通过 create-next-app 脚手架创建 Next.js 应用、启动开发服务器、理解 App Router 目录结构,并掌握文件路由、全局布局与 Tailwind CSS 的协同工作方式。读完本文,你将能够独立创建一个多页面 Next.js 项目,并读懂其核心配置文件。

项目背景:这是课程的第 121 个视频项目

在 Sigma Web Development Course 的视频教程体系中,Video 121/first 是学员接触 Next.js 的第一个实战项目。仓库中的 README.md 明确说明,这是一个通过create-next-app引导(bootstrapped)生成的 Next.js 项目。与仓库中较早的视频(如 Video 105~120 的 Vite + React 项目、Video 121 之前的纯前端 HTML 项目)相比,这个项目标志着课程从"前端框架"进入"全栈框架"阶段:Next.js 同时覆盖客户端渲染与服务端能力。

从 package.json 可以看到项目的核心依赖版本:

  • next: 14.1.0(App Router 时代的稳定版本)
  • react/react-dom: ^18
  • 开发依赖:tailwindcss^3.3.0、postcss^8、autoprefixer^10、eslint^8 与eslint-config-next14.1.0

启动开发服务器:第一条命令让应用跑起来

README 给出了最核心的启动方式。进入项目目录后,运行以下任一命令即可启动开发服务器:

npm run dev # 或 yarn dev # 或 pnpm dev # 或 bun dev

这些命令之所以能直接生效,是因为 package.json 的scripts字段已经预置了四个标准命令:

命令作用
npm run dev启动开发服务器(对应next dev),带热更新
npm run build构建生产版本(对应next build
npm run start启动生产服务器(对应next start,需先 build)
npm run lint运行 ESLint 检查(对应next lint

启动成功后,在浏览器中打开 http://localhost:3000 即可看到结果。这是 Next.js 开发服务器的默认端口,若端口被占用,Next.js 会自动尝试下一个可用端口并在终端提示。

认识 App Router:目录即路由

这是本项目最重要的架构概念。打开 app 目录,你会看到以下结构:

app/ ├── about/ │ └── page.js # 对应路由 /about ├── contact/ │ └── page.js # 对应路由 /contact ├── favicon.ico ├── globals.css ├── layout.js # 全局布局 └── page.js # 对应路由 /

这就是 Next.js 14 的App Router 文件路由机制:目录名决定 URL 路径,page.js是路由页面的唯一入口文件。在本项目中:

  • app/page.js 对应首页/,渲染内容为 "I am homepage"
  • app/about/page.js 对应/about,是一个列表页
  • app/contact/page.js 对应/contact,渲染内容为 "I am contact"

值得留意的是 app/about/page.js 的内容,它用列表形式总结了 Next.js 解决的问题,正好可以作为学习路标:

  • Full Stack Solution(全栈解决方案)
  • File based Routing(文件路由)
  • Additional features like router from next/navigation(如next/navigation中的 router 等附加能力)
  • Optimized rendering(优化渲染)

热更新:改完即生效的开发体验

README 强调:"You can start editing the page by modifyingapp/page.js. The page auto-updates as you edit the file."

这背后是next dev自带的 Fast Refresh(快速刷新)机制。当你修改 app/page.js 时,无需手动刷新浏览器,页面会自动更新;且该机制会尽量保留组件本地状态,只替换被修改的模块。这也是npm run devnpm run build && npm run start生产流程最直观的差异——开发环境优先响应速度,生产环境优先性能与稳定。

可以动手验证:把 app/page.js 中的 "I am homepage" 改成任意文本,保存后浏览器中的首页会立即变化。

全局布局与共享组件:layout.js 与 Navbar

一个容易被新手忽略但极为重要的文件是 app/layout.js。它是根布局(Root Layout),包裹着所有页面:

import { Inter } from "next/font/google"; import "./globals.css"; import Navbar from "@/component/Navbar"; const inter = Inter({ subsets: ["latin"] }); export const metadata = { title: "Blog", description: "I am a blog", }; export default function RootLayout({ children }) { return ( <html lang="en"> <body className={inter.className}> <Navbar/> {children} </body> </html> ); }

这个文件揭示了三件关键事实:

  1. {children}插槽机制:每个页面的内容会被注入到根布局的children位置,因此布局中写一次<Navbar/>//about/contact所有页面都会自动带上导航栏。
  2. metadata导出:Next.js 约定导出metadata对象即可设置页面的<title><meta name="description">,本项目示例中标题为 "Blog"。
  3. 路径别名@/:Navbar.js 被放在根目录的component/文件夹(注意不是 App Router 约定的components/),并通过@/component/Navbar导入。这个@/别名由 jsconfig.json 配置:
{ "compilerOptions": { "paths": { "@/*": ["./*"] } } }

即在 JS 代码中,@/component/Navbar等价于项目根目录下的component/Navbar,避免书写冗长的相对路径。

而 Navbar.js 本身目前只是一个占位组件,返回 "I am navbar",为后续课程引入next/linknext/navigation的路由跳转预留了位置。

样式体系:Tailwind CSS 与 next/font 字体优化

本项目同时集成了 Tailwind CSS 与 next/font 两套样式能力。

Tailwind CSS 的接入方式由三层配置共同完成:

  1. postcss.config.js 注册tailwindcssautoprefixer两个 PostCSS 插件;
  2. tailwind.config.js 声明内容扫描路径,让 Tailwind 知道从哪些文件提取类名:
module.exports = { content: [ "./pages/**/*.{js,ts,jsx,tsx,mdx}", "./components/**/*.{js,ts,jsx,tsx,mdx}", "./app/**/*.{js,ts,jsx,tsx,mdx}", ], // ... };
  1. app/globals.css 通过三行指令引入 Tailwind 的原子样式层,并额外定义了随prefers-color-scheme明暗模式切换的 CSS 变量配色。

next/font是 README 中特别提到的能力:Next.js 内置的字体优化方案。在 app/layout.js 中,通过next/font/google导入 Inter 字体:

import { Inter } from "next/font/google"; const inter = Inter({ subsets: ["latin"] });

next/font会在构建时自动下载、自托管字体文件,并使用 CSSfont-display: swap策略避免布局偏移(layout shift),同时消除了传统外链 Google Fonts 带来的额外网络请求。把inter.className挂到<body>上,即可让整站文字使用该字体。

配置文件一览:读懂脚手架的"隐藏机关"

除了上述文件,脚手架还生成了两个容易被忽略的配置文件:

  • next.config.mjs:Next.js 主配置文件,当前为空对象,表示全部使用默认配置。后续如需自定义重写(rewrites)、环境变量注入或实验特性,都在这里声明。
  • tailwind.config.js:除内容扫描路径外,还预置了gradient-radialgradient-conic两个渐变背景工具类,供页面按需使用。

从运行到部署:完整的命令工作流

README 最后部分涉及部署。完整的项目生命周期命令如下:

# 开发阶段:热更新 + 错误提示 npm run dev # 构建生产版本:输出优化后的静态资源与服务端产物 npm run build # 以生产模式启动(需先执行 build) npm start # 代码质量检查 npm run lint

npm run buildnpm run dev最直观的区别在于:build 会生成.next目录下的优化产物(包括静态生成页面、预渲染 HTML 与资源指纹),而 dev 模式下这些优化被刻意关闭以保证响应速度。

小结

通过 Video 121/first 这个最小项目,你已经掌握了 Next.js 全栈开发的入门闭环:用npm run dev启动、用 App Router 文件结构组织页面、用layout.js管理全局布局、用@/别名组织导入、用 Tailwind 与 next/font 处理样式。这套骨架正是 Sigma Web Development Course 后续 Next.js 章节(认证、API 路由、Server Actions 等)的共同地基,建议在继续后续视频前,先动手修改 app/page.js 与 component/Navbar.js,把本章的每个机制亲手验证一遍。

【免费下载链接】Sigma-Web-Dev-CourseSource Code for Sigma Web Development Course项目地址: https://gitcode.com/GitHub_Trending/si/Sigma-Web-Dev-Course

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/15 16:11:21

SAP PS中CN33实现BOM到WBS的智能映射

1. 这不是教科书里的BOM搬运&#xff0c;而是项目结构里“活”的物料关系重建你打开SAP PS模块&#xff0c;新建一个WBS元素&#xff0c;填完编号、描述、预算&#xff0c;点保存——系统没报错&#xff0c;但后续做成本归集时发现&#xff1a;明明采购了10台伺服电机&#xff…

作者头像 李华
网站建设 2026/9/15 16:08:16

抖音下载器:批量下载抖音视频、图集与音乐

抖音下载器&#xff1a;批量下载抖音视频、图集与音乐 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. 抖音批量…

作者头像 李华
网站建设 2026/9/15 16:07:02

AMD 8845HS声卡红叉根治:EC微调+ACPI补丁实战指南

1. 项目概述&#xff1a;这不是驱动没装好&#xff0c;是AMD平台与OEM固件在“打太极”“电脑扬声器有个红叉”——这句最近在各大数码论坛高频出现的白话&#xff0c;精准戳中了大批机械革命无界15X&#xff08;搭载AMD Ryzen 7 8845HS&#xff09;用户的痛点。不是静音键误触…

作者头像 李华