当前位置: 首页 > news >正文

Next.js 安装使用教程

一、Next.js 简介

Next.js 是一个基于 React 的服务端渲染(SSR)框架,由 Vercel 开发和维护。它支持静态生成(SSG)、服务器端渲染(SSR)、API 路由等特性,广泛应用于现代 Web 开发和 Jamstack 架构中。


二、安装前准备

2.1 安装 Node.js

访问 https://nodejs.org/ 下载并安装 LTS 版本。

2.2 推荐使用包管理器:npm 或 yarn

可通过以下命令验证安装:

node -v
npm -v

三、使用 Create Next App 快速创建项目

3.1 创建项目

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

或使用 yarn:

yarn create next-app my-next-app
cd my-next-app

创建时可选择:

  • TypeScript 支持
  • ESLint 配置
  • Tailwind CSS 集成

3.2 运行项目

npm run dev

默认在 http://localhost:3000 访问


四、项目结构说明

my-next-app/
├── pages/               # 页面组件,自动路由
│   ├── index.js         # 首页
│   └── about.js         # 关于页
├── public/              # 静态资源目录
├── styles/              # 样式文件目录
├── components/          # 可复用组件
├── next.config.js       # 配置文件
└── package.json

五、编写首页示例

// pages/index.js
import Head from 'next/head'export default function Home() {return (<div><Head><title>我的 Next.js 应用</title></Head><h1>你好,Next.js!</h1></div>)
}

六、页面导航

// pages/about.js
import Link from 'next/link'export default function About() {return (<div><h2>关于我们</h2><Link href="/">返回首页</Link></div>)
}

七、服务端渲染(SSR)与静态生成(SSG)

7.1 SSR:getServerSideProps

export async function getServerSideProps() {return {props: { time: new Date().toISOString() },}
}

7.2 SSG:getStaticProps

export async function getStaticProps() {return {props: { message: '静态生成页面' },}
}

八、API 路由(后端接口)

// pages/api/hello.js
export default function handler(req, res) {res.status(200).json({ message: 'Hello from API!' })
}

访问地址:http://localhost:3000/api/hello


九、部署方式

  • Vercel(推荐):一键部署,支持自动构建和预览
  • 自定义服务器部署:支持 Docker、PM2 等

十、常见问题

Q1: 编译失败?

  • 尝试 npm install 修复依赖
  • 检查是否启用了 TypeScript 或 Tailwind,确保配置正确

Q2: 页面路径访问不到?

  • 确保文件放在 pages/ 目录,命名正确(支持嵌套路由)

十一、学习资源推荐

  • Next.js 中文文档
  • Next.js 官网
  • Vercel 部署平台
  • 菜鸟教程 Next.js

本文由“小奇Java面试”原创发布,转载请注明出处。

可以搜索【小奇JAVA面试】第一时间阅读,回复【资料】获取福利,回复【项目】获取项目源码,回复【简历模板】获取简历模板,回复【学习路线图】获取学习路线图。

在这里插入图片描述

http://www.xdnf.cn/news/1077229.html

相关文章:

  • Python应用指南:利用高德地图API获取公交+地铁可达圈(三)
  • 【Python】numpy数组常用数据处理(测试代码+api例程)
  • 1.MySQL之如何定位慢查询
  • stm32 单片机主要优点有哪些?
  • 【ArcGIS】矢量数据的叠加分析
  • 在 Docker 容器中使用内网穿透
  • Hadoop、Spark、Flink 三大大数据处理框架的能力与应用场景
  • Modbus协议
  • Python OrderedDict 用法详解
  • Day 3:Python模块化、异常处理与包管理实战案例
  • A模块 系统与网络安全 第三门课 网络通信原理-3
  • 【C++】inline的作用
  • 若依中复制到剪贴板指令的使用v-clipboard
  • js严格模式和非严格模式
  • 【Python基础】13 知识拓展:CPU、GPU与NPU的区别和联系
  • 【科研绘图系列】基于R语言的复杂热图绘制教程:环境因素与染色体效应的可视化
  • SeaTunnel 社区月报(5-6 月):全新功能上线、Bug 大扫除、Merge 之星是谁?
  • 基于Spring Cloud微服务架构的API网关方案对比分析
  • 3.1.1.9 安全基线检查项目九:检查是否设置限制su命令用户组
  • [C#] WPF - 自定义样式(Slider篇)
  • 位运算经典题解
  • ELK日志分析系统(filebeat+logstash+elasticsearch+kibana)
  • Python 库 包 nltk (Natural Language Toolkit)
  • 视频断点续播全栈实现:基于HTML5前端与Spring Boot后端
  • 141.在 Vue 3 中使用 OpenLayers Link 交互:把地图中心点 / 缩放级别 / 旋转角度实时写进 URL,并同步解析显示
  • 【Maven 】 <resources> 配置中排除 fonts/** 目录无效,可能是由于以下原因及解决方案:
  • 计算机网络(二)应用层HTTP协议
  • (LangChain)RAG系统链路向量存储之Milvus(四)
  • 【1.4 漫画PostgreSQL高级数据库及国产数据库对比】
  • 【MyBatis保姆级教程下】万字XML进阶实战:配置指南与深度解析