原始文档在 https://github.com/developerw… 如今搬过来.
进修 Next.js: 入门
进修 Next.js: 页面之间的导航
进修 Next.js: 运用同享组件
进修 Next.js: 建立动态内容
进修 Next.js: 运用路由掩码建立清洁的URL
进修 Next.js: 清洁URL的服务器支撑
进修 Next.js: 猎取数据
进修 Next.js: 布置
页面之间的导航
如今我们知道了怎样建立一个Next.js应用程序而且运转它. 我们的示例应用程序只要一个简朴的页面, 然则假如你想, 可以增加更多的页面. 比方, 可以建立一个 “About” 页面, 并增加内容到 pages/about.js
.
export default () => {
<div>
<p>This is the about page</p>
</div>
}
然后, 我们可以翻开 http://localhost:3000/about 来接见这个页面. 然后我们须要链接这些页面, 运用HTML的 “a” 标签, 然则它并不会实行客户端导航, 它是实行的服务器端导航, 这并非我们想要的.
为了支撑客户端导航, 我们须要运用Next.js 的Link API, 它是经由历程 next/link
导出的. 下面我们来看看怎样运用它.
设置
为了根据本课程进修, 须要有一个示例Next.js应用程序, 为此, 你可以下载下面的这个应用程序作为进修案例:
git clone https://github.com/arunoda/learnnextjs-demo.git
cd learnnextjs-demo
git checkout getting-started
可以用下面的敕令来运转:
npm install
npm run dev
如今, 接见 http://localhost:3000/.
运用 Link
如今我们将会运用 next/link
来衔接我们的页面. 增加以下代码到 page/index.js
模块文件
// This is the Link API
import Link from 'next/link'
const Index = () => (
<div>
<Link href="/about">
<a>About Page</a>
</Link>
<p>Hello Next.js</p>
</div>
)
export default Index
在这个例子中, 我们导入了 next/link
作为 Link 模块, 而且向下面如许运用它:
<Link href="/about">
<a>About Page</a>
</Link>
如今, 再次接见 http://localhost:3000/, 点击 “About Page” 衔接, 你将被带到 “About Page” 页面.
这是客户端导航, 行动发作在客户端, 没有要求服务器. 你可以翻开浏览器开发工具的收集标签, 看看有无收集要求来考证.
下面是一个简朴的使命:
点击 “About Page”
点击浏览器的退却按钮
形貌一下, 点击退却按钮后你看到了什么? 是的, 客户端导航把你带回了Index页面.
客户端汗青支撑
当你点击退却按钮的时刻, Next.js把你带回了Index页面, 这个历程完全是客户端完成的; next/link
为你处理了一切 location.history
相干的事变. 你以至不须要编写恣意一行客户端路由代码.
你须要做的只是简朴的衔接页面罢了, 就如许!
给衔接增加款式
大多数状况, 我们可以想要给衔接增加一点款式. 想下面如许:
<Link href="/about">
<a style={{ fontSize: 20 }}>About Page</a>
</Link>
增加了款式后, 你会看到, 款式被准确的设置了.
然则, 假如你想下面一样呢, 会发作什么?
<Link href="/about" style={{ fontSize: 20 }}>
<a>About Page</a>
</Link>
对的, 没任何结果!
衔接仅仅是一个高阶组件(HOC:Higher Order Component)
实际上, 款式属性在 next/link
上是没有结果的. 由于 next/link
仅仅是一个可以吸收 href
属性, 以及其他属性的高阶主键. 假如你要给它设置款式, 须要在底层的组件举行设置.
运用按钮举行衔接
如今, 我们须要一个按钮而不是一个衔接, 如今我们须要修正我们的导航代码, 像如许:
<Link href="/about">
<button>Go to About Page</button>
</Link>
让衔接可以恣意事情
就像一个按钮一样, 你可以在Link中安排任何你的自定义React组件, 以至是一个div
元素.放在Link中的组件的唯一要求是, 它可以接收一个 onClick
属性.
衔接虽然简朴, 然则壮大
这里, 我们只看到了关于 next/link
的很基础的例子. 接下来的课程我们会越发深切的相识怎样运用Link. 假如你想要相识Next.js的路由功用, 参考 Next.js 路由文档 文档.