NextJS教程

Next.js 路由

Next.js 使用基于文件系统的路由器。每当我们将任何页面添加到 pages 目录时,它都会自动通过 url 访问。以下是这个路由器的规则。
Index Routes-文件夹中存在的 index.js 文件映射到目录的根目录。例如- pages/index.js 映射到"/"。 pages/posts/index.js 映射到"/posts"。 Nested Routes-pages 目录中的任何嵌套文件夹结构,因为路由器 url 自动。例如- pages/settings/dashboard/about.js 映射到"/settings/dashboard/about"。 pages/posts/first.js 映射到"/posts/first"。 Dynamic Routes-我们也可以使用命名参数来匹配 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 http://localhost: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,您将看到以下输出。
点击第一篇文章链接。
第一页数据
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4