更多有关Next.js教程,请查阅
有兴趣的可以蹲个后续,我会陆续发布一系列的文章。
这个Next.js的入门教程算是告一段落,接下来,会是分章节的Next.js要点讲解,以及基于Next.js拓展的文章,例如:SEO、社交化营销、商业化布局等等。
Anyway,我会以建设独立开发能力为目标,精选一些实用的技术和非技术的内容跟大家分享。
目录
在 Web 开发中,页面和布局的设计是构建用户界面(UI)的核心任务。Next.js 通过其内置的文件路由系统和组件架构,使开发者能够轻松创建功能丰富的页面和可复用的布局。这篇文章将详细讲解如何使用 Next.js 构建页面与布局,并结合实践案例,帮助您在仪表盘项目中快速掌握这些技能。
1. Next.js 文件路由系统简介
Next.js 的文件路由系统基于项目中的 `pages` 目录:
- 每个文件自动成为一个路由。
- 文件名对应于 URL 路径。
- 支持动态路由和嵌套路由。
例如:
- pages/index.js 对应 `/` 路由。
- pages/dashboard.js 对应 `/dashboard` 路由。
- 嵌套文件夹 `pages/admin/settings.js` 对应 `/admin/settings` 路由。
以下将详细介绍页面和布局的构建方法,并在仪表盘应用中应用这些知识。
2. 创建页面:构建仪表盘模块
2.1 创建基础页面
在 `pages` 目录中添加一个 `dashboard.js` 文件,用于定义仪表盘页面:
// pages/dashboard.js
export default function Dashboard() {
return (
<div>
<h1>仪表盘</h1>
<p>欢迎来到仪表盘页面!</p>
</div>
);
}
启动开发服务器后访问 `/dashboard`,即可看到仪表盘页面。
2.2 使用内置的 `Link` 组件实现导航
Next.js 提供了内置的 `Link` 组件用于在页面间导航,无需刷新页面(客户端渲染)。在主页中添加导航链接到仪表盘页面:
// pages/index.js
import Link from 'next/link';
export default function Home() {
return (
<div>
<h1>首页</h1>
<Link href="/dashboard">前往仪表盘</Link>
</div>
);
}
3. 动态路由:实现用户详情页面
动态路由允许创建带参数的页面。例如,在仪表盘应用中,我们希望每个用户都有独立的详情页面。实现方法如下:
3.1 创建动态路由文件
在 `pages/dashboard` 目录中添加 `[id].js` 文件:
// pages/dashboard/[id].js
import { useRouter } from 'next/router';
export default function UserDetail() {
const router = useRouter();
const { id } = router.query; // 获取动态路由参数
return (
<div>
<h1>用户详情</h1>
<p>当前用户 ID:{id}</p>
</div>
);
}
访问 `/dashboard/1` 会显示 ID 为 1 的用户详情。
3.2 动态路由导航
在仪表盘页面中,为每个用户添加导航链接:
// pages/dashboard.js
import Link from 'next/link';
const user