NavLink
<NavLink>
使用附加道具包装 <Link>
,以设置活动状态和待处理状态的样式。
自动属性
.active
当 <NavLink>
组件处于活动状态时,会向其添加一个 active
类,因此您可以使用 CSS 来设置其样式。
aria-current
当 NavLink
处于活动状态时,它将自动将 <a aria-current="page">
应用于底层锚标记。请参阅 MDN 上的 aria-current
。
.pending
当导航期间 <NavLink>
组件处于待处理状态时,会向其添加一个 pending
类,因此您可以使用 CSS 来设置其样式。
.transitioning
在导航过程中转换时,会向 <NavLink viewTransition>
组件添加一个 transitioning
类,因此您可以使用 CSS 来设置其样式。
Props
className
回调
使用活动和待定状态进行回调以允许自定义所应用的类名。
style
回调
使用活动和待定状态进行回调以允许自定义所应用的样式。
children
回调
使用活动和待定状态进行回调以允许自定义 <NavLink>
的内容。
end
end
属性会将 active
和 pending
状态的匹配逻辑更改为仅匹配 NavLinks
的 to
路径的结尾
。如果 URL 比 to
长,则将不再被视为活动状态。
Link | URL | isActive |
---|---|---|
<NavLink to="/tasks" /> | /tasks | true |
<NavLink to="/tasks" /> | /tasks/123 | true |
<NavLink to="/tasks" end /> | /tasks | true |
<NavLink to="/tasks" end /> | /tasks/123 | false |
<NavLink to="/">
是一个例外情况,因为每个 URL 都匹配 /
。为了避免默认匹配每条路由,它会有效地忽略 end
属性,并且仅在您位于根路由时匹配。
caseSensitive
添加 caseSensitive
属性会改变匹配逻辑,使其区分大小写。
Link | URL | isActive |
---|---|---|
<NavLink to="/SpOnGe-bOB" /> | /sponge-bob | true |
<NavLink to="/SpOnGe-bOB" caseSensitive /> | /sponge-bob | false |
viewTransition
viewTransition
属性通过将最终状态更新包装在 document.startViewTransition()
中来为此导航启用 视图转换。默认情况下,在转换期间,transitioning
类 将添加到 <a>
元素,您可以使用它来自定义视图转换。
您还可以使用 className
/style
属性或传递给 children
的渲染属性,根据 isTransitioning
值进一步自定义。
<Link>
属性
<Link>
的所有其他属性均受支持。