Next.js 浅层路由

什么是浅层路由

在 Next.js 中,浅层路由允许我们更改 URL 而无需再次运行数据获取方法,包括 getServerSideProps、getStaticProps 和 getInitialProps。

要启用浅层路由,需要将 shallow 选项设置为 true。 考虑以下示例:

更新 pages 目录中的 index.js 文件,如下所示。

index.js

 import Router from 'next/router'
 import Head from 'next/head'
 
 function HomePage(props) {
    return (
       <>
          <Head>
             <title>Welcome to 迹忆客 - Next.js 教程!</title>
          </Head>
          <div>Welcome to 迹忆客 - Next.js 教程!</div>
          <span onClick={() => Router.push('/?counter=1', undefined, { shallow: true })}>Reload</span>
          <br/>
          <div>Next stars: {props.stars}</div>
          <img src="/jiyik_logo.png" alt="迹忆客 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 /workspace/node/nextjs
> next dev

ready - started server on 0.0.0.0:3000, url: http://localhost:3000
event - compiled client and server successfully in 453 ms (124 modules)

在浏览器中打开 localhost:3000 ,然后单击 Reload 链接,将看到以下输出。

NextJs 浅层路由

查看笔记

扫码一下
查看教程更方便