【Next.js 入门指南】5分钟创建你的第一个 Next.js 应用

news2024/9/22 5:38:45

你是否曾经梦想过构建一个快速、高效且 SEO 友好的 React 应用?今天,我们将一起探索 Next.js —— 一个革命性的 React 框架,它将帮助你轻松实现这个梦想。在接下来的 5 分钟里,你将创建并运行你的第一个 Next.js 应用,开启一段激动人心的全栈开发之旅!
image.png

目录

    • 1. 引言:为什么选择 Next.js?
    • 2. 准备工作:搭建开发环境
      • 2.1 安装 Node.js 和 npm
      • 2.2 选择适合的代码编辑器
    • 3. 创建你的第一个 Next.js 项目
      • 3.1 使用 create-next-app 快速搭建
      • 3.2 项目结构解析
    • 4. 运行和调试 Next.js 应用
      • 4.1 启动开发服务器
      • 4.2 了解 Next.js 的热重载特性
    • 5. 探索 Next.js 项目
      • 5.1 app 目录:页面和路由
      • 5.2 components 目录:可重用组件
      • 5.3 styles 目录:CSS 和样式设置
      • 5.4 public 目录:静态资源管理
    • 6. 创建你的第一个页面
    • 7. 使用 Next.js 的内置功能
      • 7.1 Link 组件实现页面导航
      • 7.2 Image 组件优化图片加载
    • 8. 部署你的 Next.js 应用
      • 8.1 使用 Vercel 一键部署
      • 8.2 查看和分享你的作品
    • 9. 下一步学习计划
    • 10. 总结与鼓励

1. 引言:为什么选择 Next.js?

在我们动手之前,让我们先了解一下为什么 Next.js 如此受欢迎。Next.js 是一个基于 React 的强大框架,它解决了许多 React 开发中的常见问题:

  • 服务器端渲染 (SSR): 提高首屏加载速度和 SEO 表现
  • 静态站点生成 (SSG): 为静态内容提供超快的加载速度
  • 文件系统路由: 简化路由配置,提高开发效率
  • API 路由: 轻松创建后端 API 端点
  • 自动代码分割: 优化加载性能
  • 内置 CSS 支持: 简化样式管理

这些特性使 Next.js 成为构建现代 Web 应用的理想选择,无论是小型项目还是大规模企业应用。

2. 准备工作:搭建开发环境

在开始之前,我们需要确保你的电脑已经准备就绪。
image.png

2.1 安装 Node.js 和 npm

  1. 访问 Node.js 官网
  2. 下载并安装适合你操作系统的 LTS 版本
  3. 安装完成后,打开终端并运行以下命令验证安装:
node --version
npm --version

如果显示版本号,说明安装成功。

2.2 选择适合的代码编辑器

虽然你可以使用任何文本编辑器,但我推荐使用 Visual Studio Code,它对 Next.js 开发有很好的支持。

  1. 访问 Visual Studio Code 官网
  2. 下载并安装 VS Code

3. 创建你的第一个 Next.js 项目

image.png

现在,让我们开始创建你的第一个 Next.js 项目!

3.1 使用 create-next-app 快速搭建

打开你的终端,运行以下命令:

npx create-next-app@latest my-first-next-app
cd my-first-next-app

在安装过程中,你会看到一些选项,我们选择默认配置:

✔ Would you like to use TypeScript? … No
✔ Would you like to use ESLint? … Yes
✔ Would you like to use Tailwind CSS? … No
✔ Would you like to use `src/` directory? … No
✔ Would you like to use App Router? (recommended) … Yes
✔ Would you like to customize the default import alias? … No

3.2 项目结构解析

安装完成后,让我们看看 Next.js 为我们创建的项目结构:

my-first-next-app/
├── app/
│   ├── favicon.ico
│   ├── globals.css
│   ├── layout.js
│   └── page.js
├── public/
│   ├── next.svg
│   └── vercel.svg
├── .eslintrc.json
├── .gitignore
├── next.config.js
├── package.json
└── README.md

这个结构看起来可能有点陌生,但别担心,我们很快就会熟悉它。

4. 运行和调试 Next.js 应用

image.png

4.1 启动开发服务器

在项目根目录下运行以下命令:

npm run dev

现在,打开你的浏览器,访问 http://localhost:3000。恭喜你!你的第一个 Next.js 应用已经运行起来了!

4.2 了解 Next.js 的热重载特性

试着修改 app/page.js 文件中的内容,然后保存。你会发现浏览器中的内容自动更新了,这就是 Next.js 的热重载特性,它能大大提高开发效率。

5. 探索 Next.js 项目

image.png

让我们深入了解 Next.js 项目的核心部分:

5.1 app 目录:页面和路由

在 Next.js 13 中,app 目录是新的路由系统的核心。每个文件夹代表一个路由段,每个 page.js 文件定义该路由的内容。

5.2 components 目录:可重用组件

虽然默认项目没有创建这个目录,但你可以自己创建它来存放可重用的 React 组件。

5.3 styles 目录:CSS 和样式设置

Next.js 支持多种样式解决方案。在我们的项目中,主要的全局样式文件是 app/globals.css

5.4 public 目录:静态资源管理

将图片、字体等静态资源放在这个目录中,Next.js 会自动处理它们。

6. 创建你的第一个页面

image.png

让我们修改主页面来展示一些个性化的内容。

编辑 app/page.js

export default function Home() {
  return (
    <main className="flex min-h-screen flex-col items-center justify-between p-24">
      <h1 className="text-4xl font-bold">Welcome to My First Next.js App!</h1>
      <p className="text-xl">This is just the beginning of something amazing.</p>
    </main>
  )
}

保存文件,你会看到浏览器中的内容立即更新。

7. 使用 Next.js 的内置功能

image.png

Next.js 提供了许多内置组件来优化你的应用。让我们看两个最常用的:

7.1 Link 组件实现页面导航

创建一个新文件 app/about/page.js

export default function About() {
  return <h1>About Us</h1>
}

然后,在 app/page.js 中添加一个链接:

import Link from 'next/link'

export default function Home() {
  return (
    <main className="flex min-h-screen flex-col items-center justify-between p-24">
      <h1 className="text-4xl font-bold">Welcome to My First Next.js App!</h1>
      <p className="text-xl">This is just the beginning of something amazing.</p>
      <Link href="/about" className="text-blue-500 hover:underline">
        About Us
      </Link>
    </main>
  )
}

Link 组件实现了客户端导航,使页面跳转更快速、更平滑。

7.2 Image 组件优化图片加载

Next.js 的 Image 组件可以自动优化图片加载。让我们在主页添加一个图片:

首先,将一张图片(假设名为 example.jpg)放到 public 目录下,然后修改 app/page.js

import Image from 'next/image'
import Link from 'next/link'

export default function Home() {
  return (
    <main className="flex min-h-screen flex-col items-center justify-between p-24">
      <h1 className="text-4xl font-bold">Welcome to My First Next.js App!</h1>
      <Image src="/example.jpg" alt="Example Image" width={300} height={200} />
      <p className="text-xl">This is just the beginning of something amazing.</p>
      <Link href="/about" className="text-blue-500 hover:underline">
        About Us
      </Link>
    </main>
  )
}

Image 组件会自动处理图片的懒加载、大小调整和格式优化。

8. 部署你的 Next.js 应用

image.png

8.1 使用 Vercel 一键部署

Vercel 是 Next.js 的创建者,提供了最简单的部署方式:

  1. 注册一个 Vercel 账号
  2. 安装 Vercel CLI:npm i -g vercel
  3. 在项目根目录运行:vercel
  4. 按照提示完成部署

8.2 查看和分享你的作品

部署完成后,Vercel 会给你一个可访问的 URL。恭喜你,你的 Next.js 应用现在已经上线了!

9. 下一步学习计划

image.png

你已经成功创建并部署了你的第一个 Next.js 应用,这只是开始!接下来,你可以:

  • 学习更多关于 Next.js 路由的知识
  • 探索 Next.js 的数据获取方法
  • 尝试使用 API 路由创建后端功能
  • 深入了解 Next.js 的性能优化技巧

10. 总结与鼓励

在短短的几分钟里,你已经完成了一个 Next.js 应用的创建、开发和部署。这是一个令人兴奋的开始!Next.js 的世界还有很多等待你去探索。继续学习,不断实践,你会发现 Next.js 能帮助你构建出令人惊叹的 Web 应用。

记住,每个专家都是从新手开始的。保持好奇心,勇于尝试,你一定会在 Next.js 的旅程中取得巨大的进步。期待在不久的将来看到你用 Next.js 创造出的精彩作品!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2098811.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

开发团队如何应对突发的技术故障与危机:策略与实践

&#x1f493; 博客主页&#xff1a;倔强的石头的CSDN主页 &#x1f4dd;Gitee主页&#xff1a;倔强的石头的gitee主页 ⏩ 文章专栏&#xff1a;《热点时事》 期待您的关注 目录 引言 一、快速响应与问题定位策略 1. 建立紧急响应团队 2. 利用自动化监控工具 3. 快速定位问…

图片转PDF:2024四大转换工具推荐!

在数字化时代&#xff0c;我们经常需要将图片转换成PDF格式&#xff0c;无论是为了打印、存档还是分享。“图片转PDF”已经成为一个常见的需求&#xff0c;而市场上有多种工具可以帮助我们轻松实现这一转换。本文将介绍几款备受好评的图片转PDF工具&#xff01; 福昕PDF转换大…

代码随想录算法训练营第三十四天| 62.不同路径 63. 不同路径 II

62.不同路径 题目&#xff1a; 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finish” &#xff09;。 问总共有多少…

Java 入门指南:Java 并发编程 —— LockSupport 线程阻塞唤醒类

LockSupport LockSupport 是Java并发包中用于线程阻塞和唤醒的工具类。它提供了一种基于线程的阻塞和唤醒机制&#xff0c;类似于 Object 类中的 wait() 和 notify() 方法&#xff0c;但与 wait() 和 notify() 方法相比&#xff0c;LockSupport&#xff0c;它不依赖于对象的监…

SpringBoot2:配置绑定与自动配置功能源码解读

一、配置绑定 1、作用说明 我们在开发springboot项目时&#xff0c;会有个配置文件&#xff0c;application.properties文件。 我们知道&#xff0c;像什么访问端口、上传功能的相关配置&#xff0c;都会在这里进行配置。 而这些&#xff0c;都是springboot自带的或者第三方j…

储能电站变流器设计与仿真研究(文章复现matlab)

为了有效解决交流子网与直流子网间的功率传输&#xff0c; 降低电流谐波&#xff0c; 基于三相电压源型变流器及变流器的控制方法&#xff0c; 在 MATLAB R2018a 环境下搭建了储能变流器的整体仿真模型。 电路主要由三相电网、 三相 PWM 变流器、Buck/Boost 变换器和蓄电池构成…

MQTT - EMQX安装使用

阅读本文前可先参考&#xff1a; MQTT - 消息队列遥测传输协议 MQTT&#xff08;Message Queuing Telemetry Transport&#xff09;是一种轻量级、基于发布-订阅模式的消息传输协议&#xff0c;适用于资源受限的设备和低带宽、高延迟或不稳定的网络环境。它在物联网应用中广受…

【html】新建一个html并且在浏览器运行

以下是一个简单的 HTML 小项目&#xff0c;展示一个包含标题、按钮和点击按钮后弹出提示框的基本页面 <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthde…

视频提取字幕的软件有哪些?高效转录用这些

探索视频的奥秘&#xff0c;从字幕开始&#xff01;你是否曾被繁复的字幕处理困扰&#xff0c;渴望有一款简单好用的在线免费软件来轻松解锁字幕提取&#xff1f; 告别手动输入的烦恼&#xff0c;我们为你精选了6款视频字幕提取在线免费软件&#xff0c;它们不仅能一键转录&am…

新手常见错误:Unable to find a @SpringBootConfiguration

目录 报错信息 &#xff1a; 1. 使用SpringBootTest注解 2. 使用ContextConfiguration注解 3. 检查包结构和注解&#xff08;一般都是这问题&#xff09; 4. 清理和重建项目 5. 检查依赖 报错信息 &#xff1a; Unable to find a SpringBootConfiguration, you need to use C…

pdf转word怎么转换?2024快速进行文件格式转换的几款软件

pdf转word怎么转换&#xff1f;2024快速进行文件格式转换的几款软件 将PDF文件转换为Word文档是日常工作中常见的需求&#xff0c;尤其是当你需要编辑或重新利用PDF中的内容时。市面上有许多软件可以帮助你轻松完成PDF转Word的任务&#xff0c;以下是五款值得推荐的软件&#…

WordPress 资源展示型下载类主题 CeoMax-Pro_v7.6 开心版

WordPress 资源展示型下载类主题 CeoMax-Pro_v7.6 开心版&#xff1b; CeoMax-Pro是一款极致美观强大的WordPress付费资源下载主题&#xff0c;它能满足您所有付费资源下载的业务需求&#xff01; 你的想法与业务不能被主题所限制&#xff01;CeoMax-Pro强大的功能&#xff0…

Spring Security 认证源码超详细分析

Spring Security 认证源码超详细分析 认证&#xff08;Authentication&#xff09;是系统确认用户信息的重要途径&#xff0c;用户通过认证之后&#xff0c;系统才能明确用户的身份&#xff0c;进而才可以为该用户分配一定的权限&#xff0c;这个过程也叫授权&#xff08;Auth…

智慧理财新纪元:蚂蚁集团“支小宝”智能理财助理深度体验与测评

2023年9月8日&#xff0c;蚂蚁集团宣布推出面向消费者的智能金融助理“支小宝2.0”&#xff0c;这是该公司首个基于金融大模型的应用产品。该产品在语言力、知识力、专业力和安全力方面展现出卓越性能&#xff0c;旨在为用户提供包括行情分析、持仓诊断、资产配置和投资教育陪伴…

MS SQL Server partition by 函数实战三 成绩排名

目录 需求 范例运行环境 视图样本设计 功能实现 基础数据展示 SQL语句 继续排序 小结 需求 假设有若干已更新考试成绩的考生&#xff0c;考试成绩包括总成绩、分项成绩1、分项成绩2&#xff0c;其它信息包括应聘岗位名称、姓名等信息。现希望根据总成绩计算排名&#…

C语言代码练习(第十一天)

今日练习&#xff1a; 25、用指针方法对10个整数按由大到小顺序排序 26、有一个班&#xff0c;3个学生&#xff0c;各学习4门课&#xff0c;计算总平均分数以及第 n 个学生的成绩 27、有一个3 * 4的二维数组&#xff0c;要求用指向元素的指针变量输出二维数组个元素的值。 用指…

mar3d模型文件问题

上一章使用mars3D模型库 遗留一个问题 部分资源不完整 如果模型没有其他依赖文件会正常加载 若有其他依赖就会报错 正常获取到的 缺少文件的 经过观察在gltf文件中发现缺失的是这几个文件 还是通过脚本下载 脚本实例 const fs require(fs); const path require(path); co…

Idea中修改Jsp文件的头部注释模版

文章目录 方法1&#xff0c;启动idea&#xff0c;单击“file”&#xff0c;选择“settings”2&#xff0c;选择Editor——File and Code Templates——other——Jsp files——jsp File.jsp。此时编辑如下图所示的右上区域即可修改模板。 每天学一个小技巧 方法 1&#xff0c;启…

FL Studio 24汉化破解版 v24.4.1.4285(附汉化破解补丁)

FL Studio 24.4.1.4285(汉化破解版是一款无比专业的音乐制作软件&#xff0c;它无论是在功能上还是用户界面都是在业内数一数二的。就拿它的用户界面来说&#xff0c;是目前同类软件中唯一做到100%矢量化&#xff0c;这样能更好地用在4K&#xff0c;5K甚至8K显示器上&#xff0…

力扣面试经典算法150题:Z 字形变换

Z 字形变换 今天的题目是力扣面试经典150题中的数组的中等难度题&#xff1a; Z 字形变换。 题目链接&#xff1a;https://leetcode.cn/problems/zigzag-conversion/description/?envTypestudy-plan-v2&envIdtop-interview-150 题目描述 将一个给定字符串 s 根据给定的行…