该 Link
组件支持在同一个 Next.js 应用中的两个页面之间进行 **客户端导航**。
客户端导航意味着页面转换是 *使用 JavaScript* 完成的,这比浏览器默认的导航更快。
以下是如何验证它的一种简单方法
<html>
的 background
CSS 属性更改为 yellow
。这表明浏览器 *没有* 加载完整页面,并且客户端导航正在工作。
如果你使用了 <a href="…">
而不是 <Link href="…">
并执行此操作,则背景颜色会在点击链接时被清除,因为浏览器会进行完全刷新。
Next.js 会自动进行代码分割,因此每个页面只加载该页面所需的代码。这意味着当主页渲染时,其他页面的代码不会被立即提供。
这确保了即使你有数百个页面,主页也能快速加载。
只加载你请求的页面的代码也意味着页面变得隔离。如果某个页面抛出错误,应用程序的其余部分仍然可以工作。
此外,在 Next.js 的生产版本中,每当 Link
组件出现在浏览器视口中时,Next.js 就会自动在后台 **预取** 链接页面的代码。当你点击链接时,目标页面的代码已经加载到后台,页面转换将几乎是即时的!
Next.js 通过代码分割、客户端导航和预取(在生产环境中)自动优化你的应用程序以获得最佳性能。
你可以在 pages
目录下创建路由文件,并使用内置的 Link
组件。不需要路由库。
你可以在 next/link
的 API 参考 中了解更多关于 Link
组件的信息,以及在 路由文档 中了解一般路由信息。
**注意:**如果你需要链接到 Next.js 应用外部的 *外部* 页面,只需使用一个
<a>
标签,无需Link
。
**快速复习**:用户打开浏览器并导航到 your-blog.com/posts/first-post
。此页面最初加载了哪些 JavaScript?