react-router-dom入门使用教程(路由的模糊匹配与严格匹配)
模糊匹配
<!-- 编写路由链接 --> <NavLink to="/home/a/b">Home</NavLink> <!-- 注册路由 --> <Switch> <Route path="/home" component={Home} /> </Switch>
点击Home,进入路径/home/a/b,此时模糊匹配到/home路径的组件{Home}。
开启严格匹配
<!-- 编写路由链接 --> <NavLink to="/home/a/b">Home</NavLink> <!-- 注册路由 --> <Switch> // 开启严格匹配:exact={true} <Route exact path="/home" component={Home} /> </Switch>
此时,点击Home,进入路径/home/a/b,无法匹配/home路径下的{Home}组件。
1.默认使用的就是模糊匹配(简单记:【输入的路径】必须包含要【匹配的路径】,且顺序要一致。
2.开启严格匹配:
// 开启严格匹配:exact={true} <Route exact path="/home" component={Home} />
3.严格匹配不要随便开启,需要再开,有些时候开启会导致无法继续匹配二级路由
Redirect的使用
路由重定向
{/* 注册路由 */} <Switch> <Route path="/about" component={About} /> <Route path="/home" component={Home} /> <Redirect to="/home" /> </Switch>
一般写在所有路由注册的最下方,当所有路由都无法匹配时,跳转到Redirect指定的路由。
嵌套路由使用
注册子路由时要写上父路由的path值。 => /父路由path/子路由path。
路由的匹配是按照注册路由的顺序进行的。
src项目结构
├─App.jsx ├─index.js ├─pages | ├─Home | | ├─index.jsx | | ├─News | | | └index.jsx | | ├─Message | | | └index.jsx | ├─About | | └index.jsx ├─components | ├─MyNavLink | | └index.jsx | ├─Header | | └index.jsx
Message是Home的子组件,News组件是Home的子组件
例如:注册Message组件时需要加上父路由Home的path值:/home/message
<Switch> <Route path="/home/news" component={News} /> <Route path="/home/message" component={Message} /> <Redirect to="/home/news" /> </Switch>
到此这篇关于react-router-dom入门使用教程(路由的模糊匹配与严格匹配)的文章就介绍到这了,更多相关react-router-dom使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
React项目中fetch实现跨域接收传递session的解决方案
这篇文章主要介绍了React项目中fetch实现跨域接收传递session的解决方案,本次项目使用了react框架,同时使用fetch取代ajax作为获取接口数据的交互方法,下面就对这次问题的解决做个总结,需要的朋友可以参考下2022-04-04React超详细分析useState与useReducer源码
我正在处理的组件是表单的时间输入。表单相对复杂,并且是动态生成的,根据嵌套在其他数据中的数据显示不同的字段。我正在用useReducer管理表单的状态,到目前为止效果很好2022-11-11react+axios实现github搜索用户功能(示例代码)
这篇文章主要介绍了react+axios实现搜索github用户功能,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2021-09-09react项目升级报错,babel报错,.babelrc配置兼容等问题及解决
这篇文章主要介绍了react项目升级报错,babel报错,.babelrc配置兼容等问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-08-08在 React Native 中使用 CSS Modules的配置方法
有些前端工程师希望也能像开发 web 应用那样,使用 CSS Modules 来开发 React Native,本文将介绍如何在 React Native 中使用 CSS Modules,需要的朋友可以参考下2022-08-08
最新评论