react中路由的扩展使用(NavLink、Switch、Redirect、精准匹配与模糊匹配) |
您所在的位置:网站首页 › switch与router的区别 › react中路由的扩展使用(NavLink、Switch、Redirect、精准匹配与模糊匹配) |
一、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 */} About Home 二、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标签中的 路由链接 {/* 注册路由 */} Home} /> {/* Redirect: 一般写在所有路由注册最下方,当所有路由都没有匹配成功时, 就跳转到 Redirect 指定的路由 */} 三、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” 能匹配成功 About} /> Home} />注意:不要随便开启精准匹配 个人博客:余生的学习笔记 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |