dreamviewer做网站,沈阳app开发公司哪家好,flash网站开源,软服业营收破334亿React Router 是一个基于 React 的路由库#xff0c;它可以帮助我们在 React 应用中实现页面的切换和路由的管理。而 NavLink 则是 React Router 中的一个组件#xff0c;它可以帮助我们实现导航栏的样式设置和路由跳转。
在 React Router 版本6.18.0 中#xff0c;NavLink…React Router 是一个基于 React 的路由库它可以帮助我们在 React 应用中实现页面的切换和路由的管理。而 NavLink 则是 React Router 中的一个组件它可以帮助我们实现导航栏的样式设置和路由跳转。
在 React Router 版本6.18.0 中NavLink 组件的 API 和属性有以下几个
API
NavLink创建一个 NavLink 组件用于实现导航栏的样式设置和路由跳转。
属性
to指定 NavLink 跳转的路由地址可以是一个字符串或一个对象。exact如果为 true则 NavLink 只会在路径完全匹配时才会被激活。strict如果为 true则 NavLink 在匹配时会考虑路径末尾的斜杠。isActive一个回调函数用于自定义 NavLink 的激活状态。location指定 NavLink 的位置信息可以是一个字符串或一个对象。aria-current用于设置 NavLink 的 ARIA 当前状态属性。
使用案例和场景
下面我们来看一下 NavLink 的使用案例和场景。
基本使用
首先我们需要在项目中导入 NavLink 组件
import { NavLink } from react-router-dom;然后我们可以使用 NavLink 来创建一个导航链接
NavLink to/homeHome/NavLink这个 NavLink 组件会渲染成一个带有样式的链接点击它会跳转到指定的路由地址。
设置样式
在 NavLink 中我们可以通过设置 activeClassName 和 activeStyle 属性来设置激活状态下的样式。例如
NavLink to/home activeClassNameactiveHome/NavLink这个 NavLink 组件在激活状态下会添加一个名为 “active” 的类名我们可以通过 CSS 来设置这个类名下的样式。
.active {color: red;
}除了 activeClassName 属性我们还可以使用 activeStyle 属性来设置激活状态下的样式例如
NavLink to/home activeStyle{{ color: red }}Home/NavLink这个 NavLink 组件在激活状态下会应用一个内联样式将链接的颜色设置为红色。
精确匹配
有时候我们希望 NavLink 只在路径完全匹配时才会被激活这时可以使用 exact 属性。例如
NavLink to/home exactHome/NavLink这个 NavLink 组件只会在路径为 “/home” 时才会被激活如果路径为 “/home/other”则不会被激活。
严格匹配
有时候我们希望 NavLink 在匹配时考虑路径末尾的斜杠这时可以使用 strict 属性。例如
NavLink to/home/ strictHome/NavLink这个 NavLink 组件只会在路径为 “/home/” 时才会被激活如果路径为 “/home”则不会被激活。
自定义激活状态
有时候我们希望 NavLink 的激活状态不仅仅是路径匹配还要满足一些其他的条件这时可以使用 isActive 属性。例如
NavLink to/home isActive{(match, location) {// 自定义激活状态的逻辑return match location.search ?activetrue;
}}Home/NavLink这个 NavLink 组件会根据自定义的激活状态逻辑来判断是否激活。 使用逻辑
NavLinkclassName{({ isActive }) (isActive ? selectnav : )}to{ele.path}{ele.name}
/NavLink默认使用 根据路径默认匹配 进行激活 激活的默认的class active 设置位置信息
有时候我们希望 NavLink 的位置信息不是当前的路由地址而是其他的地址这时可以使用 location 属性。例如
NavLink to/home location{{ pathname: /other }}Home/NavLink这个 NavLink 组件的位置信息为 “/other”但是点击它时会跳转到 “/home”。
设置 ARIA 当前状态属性
最后我们可以使用 aria-current 属性来设置 NavLink 的 ARIA 当前状态属性。例如
NavLink to/home aria-currentpageHome/NavLink这个 NavLink 组件会在激活状态下添加一个 aria-current 属性将它的值设置为 “page”。
代码和注释
最后我们来看一下完整的代码和注释
import { NavLink } from react-router-dom;function App() {return (nav{/* 基本使用 */}NavLink to/homeHome/NavLink{/* 设置样式 */}NavLink to/home activeClassNameactiveHome/NavLinkNavLink to/home activeStyle{{ color: red }}Home/NavLink{/* 精确匹配 */}NavLink to/home exactHome/NavLink{/* 严格匹配 */}NavLink to/home/ strictHome/NavLink{/* 自定义激活状态 */}NavLink to/home isActive{(match, location) {// 自定义激活状态的逻辑return match location.search ?activetrue;}}Home/NavLink{/* 设置位置信息 */}NavLink to/home location{{ pathname: /other }}Home/NavLink{/* 设置 ARIA 当前状态属性 */}NavLink to/home aria-currentpageHome/NavLink/nav);
}以上就是 React Router 版本6.18.0 中 NavLink 的 API 和属性介绍、基本使用案例和场景以及代码和注释。希望可以帮助大家更好地使用 React Router 中的 NavLink 组件。