- Next.js 教程
- Next.js - 首页
- Next.js - 概览
- Next.js - 环境设置
- Next.js 特性
- Next.js - 页面
- Next.js - 静态文件服务
- Next.js - 元数据
- Next.js - CSS 支持
- Next.js - 全局 CSS 支持
- Next.js - 预渲染
- Next.js 路由
- Next.js - 路由
- Next.js - 动态 API 路由
- Next.js - 命令式路由
- Next.js - 浅路由
- Next.js API 路由
- Next.js - API 路由
- Next.js - API 中间件
- Next.js - 响应助手
- Next.js 杂项
- Next.js - TypeScript
- Next.js - 环境变量
- Next.js - 部署
- Next.js - CLI
- Next.js 有用资源
- Next.js - 快速指南
- Next.js - 有用资源
- Next.js - 讨论
Next.js - 路由
Next.js 使用基于文件系统的路由器。每当我们将任何页面添加到pages目录时,它都会通过 URL 自动可用。以下是此路由器的规则。
索引路由 - 文件夹中存在的 index.js 文件映射到目录的根目录。例如 -
pages/index.js 映射到 '/'。
pages/posts/index.js 映射到 '/posts'。
嵌套路由 - pages 目录中的任何嵌套文件夹结构,因为路由器 URL 会自动生成。例如 -
pages/settings/dashboard/about.js 映射到 '/settings/dashboard/about'。
pages/posts/first.js 映射到 '/posts/first'。
动态路由 - 我们也可以使用命名参数来匹配 URL。为此使用方括号。例如 -
pages/posts/[id].js 映射到 '/posts/:id',我们可以使用像 '/posts/1' 这样的 URL。
pages/[user]/settings.js 映射到 '/posts/:user/settings',我们可以使用像 '/abc/settings' 这样的 URL。
pages/posts/[...all].js 映射到 '/posts/*',我们可以使用任何 URL,例如 '/posts/2020/jun/'。
页面链接
Next.JS 允许使用 Link React 组件在客户端链接页面。它具有以下属性 -
href - pages 目录中页面的名称。例如/posts/first,它指的是 pages/posts 目录中存在的 first.js。
让我们创建一个示例来演示它。
在这个例子中,我们将更新 index.js 和 first.js 页面以进行服务器命中以获取数据。
让我们更新在全局 CSS 支持章节中使用的 nextjs 项目。
更新 pages 目录中的 index.js 文件,如下所示。
import Link from 'next/link'
import Head from 'next/head'
function HomePage(props) {
return (
<>
<Head>
<title>Welcome to Next.js!</title>
</Head>
<div>Welcome to Next.js!</div>
<Link href="/posts/first">> <a>First Post</a></Link>
<br/>
<div>Next stars: {props.stars}</div>
<img src="/logo.png" alt="TutorialsPoint Logo" />
</>
)
}
export async function getServerSideProps(context) {
const res = await fetch('https://api.github.com/repos/vercel/next.js')
const json = await res.json()
return {
props: { stars: json.stargazers_count }
}
}
export default HomePage
启动 Next.js 服务器
运行以下命令以启动服务器 -。
npm run dev > nextjs@1.0.0 dev \Node\nextjs > next ready - started server on https://:3000 event - compiled successfully event - build page: / wait - compiling... event - compiled successfully event - build page: /next/dist/pages/_error wait - compiling... event - compiled successfully
验证输出
在浏览器中打开 localhost:3000,您将看到以下输出。
点击第一个帖子链接。