Link 组件
<Link>
是一个 React 组件,它扩展了 HTML <a>
元素,提供预取和路由间的客户端导航功能。它是 Next.js 中在路由间导航的主要方式。
基本用法:
- TypeScript
- JavaScript
app/page.tsx
import Link from 'next/link'
export default function Page() {
return <Link href="/dashboard">Dashboard</Link>
}
app/page.js
import Link from 'next/link'
export default function Page() {
return <Link href="/dashboard">Dashboard</Link>
}
参考
以下 props 可以传递给 <Link>
组件:
Prop | 示例 | 类型 | 必填 |
---|---|---|---|
href | href="/dashboard" | String or Object | Yes |
replace | replace={false} | Boolean | - |
scroll | scroll={false} | Boolean | - |
prefetch | prefetch={false} | Boolean or null | - |
onNavigate | onNavigate={(e) => {}} | Function | - |
提示:
<a>
标签的属性(如className
或target="_blank"
)可以作为 props 添加到<Link>
上,并会传递给底层的<a>
元素。
href
(必填)
要导航到的路径或 URL。
- TypeScript
- JavaScript
app/page.tsx
import Link from 'next/link'
// 导航到 /about?name=test
export default function Page() {
return (
<Link
href={{
pathname: '/about',
query: { name: 'test' },
}}
>
About
</Link>
)
}
app/page.js
import Link from 'next/link'
// 导航到 /about?name=test
export default function Page() {
return (
<Link
href={{
pathname: '/about',
query: { name: 'test' },
}}
>
About
</Link>
)
}
replace
默认为 false
。 当为 true
时,next/link
将替换当前的历史状态,而不是在浏览器历史栈中添加新的 URL。
- TypeScript
- JavaScript
app/page.tsx
import Link from 'next/link'
export default function Page() {
return (
<Link href="/dashboard" replace>
Dashboard
</Link>
)
}
app/page.js
import Link from 'next/link'
export default function Page() {
return (
<Link href="/dashboard" replace>
Dashboard
</Link>
)
}
scroll
默认为 true
。 Next.js 中 <Link>
的默认滚动行为是保持滚动位置,类似于浏览器处理前进和后退导航的方式。当你导航到新的页面