一、NavLink的使用
1.1NavLink 和普通的 Link 都可以用来进行路由跳转。它们之间的区别在于:
NavLink 组件在页面中渲染为一个 a 标签,默认会添加 active class,用于标识当前路由。可以通过 activeClassName 和 activeStyle 自定义 active class 和样式。
NavLink 可以通过 exact 属性来指定是否精确匹配路由,如果为 true 则只匹配路由完全相同的情况,否则会按照路径前缀的方式匹配。例如,如果 NavLink 的 to 属性为 /users,则精确匹配指的是只有在路径为 /users 时才会被选中,非精确匹配指的是在路径为 /users/* 时都会被选中,包括 /users/1、/users/2 等。
NavLink 还可以通过 activeClassName 和 activeStyle 的设置来自定义选中样式。
总之,NavLink 是一个能够更好地帮助我们完成路由选中状态标识的组件。如果只是简单的进行路由跳转,使用 Link 即可。
1.2 NavLink的导入
import { NavLink} from 'react-router-dom'
1.3 NavLink的使用
{/* Navlink :当被点击时添加一个类名 active */}
<NavLink className="list-group-item " to='/about'>About</NavLink>
<NavLink className="list-group-item " to='/home'>Home</NavLink>
二、Switch标签 和 Redirect标签 的使用
2.1、在 React 中,Switch 标签是 React Router 中提供的一个组件,它的主要作用是用来选择性地渲染一个路由。
原本的路由匹配会匹配所有的路由,就算已经匹配成功了,还是会继续往下匹配。
Switch 组件会在所有的子组件中寻找第一个与当前路径匹配的 Route 组件,并且仅渲染该组件。
2.2、Switch 和 Redirect 的导入
import { Redirect, Switch } from 'react-router-dom'
2.3、Switch 和 Redirect的使用
通常情况下 path 和 component 是一一对应的关系
用 Switch标签 包裹路由 和路由链接匹配上后 不在向后匹配
如果一个都没有匹配成功,就走 Redirect标签中的 路由链接
{/* 注册路由 */}
<Switch>
<Route path='/about' component={About} />
<Route path='/home' component={Home} />
<Redirect to="/home" />
{/*
Redirect:
一般写在所有路由注册最下方,当所有路由都没有匹配成功时,
就跳转到 Redirect 指定的路由
*/}
</Switch>
三、Src的精准匹配与模糊匹配
3.1 exact 是否开启精准匹配,默认是false
3.1.1. 精准匹配:
路由链接to 必须和 路由path 一模一样 才能匹配成功
如 to=“/home/b/a” 与 path=“/home” 不能匹配成功
3.1.2模糊匹配:
路由链接to 和 路由path 的第一个路径相同 就能匹配成功。
如 to=“/home/b/a” 与 path=“/home” 能匹配成功
<Route exact={true} path='/about' component={About} />
<Route exact={true} path='/home' component={Home} />
注意:不要随便开启精准匹配
个人博客:余生的学习笔记