跳到内容

8

客户端导航

Link 组件可在同一 Next.js 应用的两个页面之间实现客户端导航

客户端导航意味着页面过渡通过 JavaScript 完成,这比浏览器默认的导航速度更快。

下面是一种简单的验证方法:

  • 使用浏览器的开发工具将 <html>background CSS 属性更改为 yellow
  • 点击链接在两个页面之间来回切换。
  • 你会看到黄色背景在页面过渡之间持续存在。

这表明浏览器没有加载整个页面,并且客户端导航正在工作。

Links

如果你使用 <a href="…"> 而不是 <Link href="…"> 并这样做,背景颜色将在点击链接时被清除,因为浏览器会进行完全刷新。

代码分割和预加载

Next.js 会自动进行代码分割,因此每个页面只加载该页面所需的代码。这意味着当首页渲染时,其他页面的代码最初不会被提供。

这确保了即使你有数百个页面,首页也能快速加载。

只加载你请求页面的代码也意味着页面是隔离的。如果某个页面出现错误,应用程序的其余部分仍然可以正常工作。

此外,在 Next.js 的生产版本中,每当 Link 组件出现在浏览器的视口中时,Next.js 会自动在后台预加载链接页面的代码。当你点击链接时,目标页面的代码已经加载到后台,页面过渡将几乎是即时的!

总结

Next.js 通过代码分割、客户端导航和预加载(在生产环境中)自动优化你的应用程序,以实现最佳性能。

你可以在 pages 下创建文件作为路由,并使用内置的 Link 组件。不需要路由库。

你可以在 next/link 的 API 参考中了解有关 Link 组件的更多信息,并在 路由文档中了解一般的路由。

注意:如果你需要链接到 Next.js 应用之外的外部页面,只需使用 <a> 标签,而无需使用 Link

您已完成本章8

下一章

9:布局组件

Pages 路由:客户端导航 | Next.js 框架