当前位置: 首页 > news >正文

React - Switch、路由精准匹配与模糊匹配、Redirect

一、Switch

1、基本介绍
  • Switch 用于只渲染第一个匹配到的路由,匹配到后就停止,不再继续往下找
2、基本使用
(1)pages
  1. About 组件
importReact,{Component}from"react";exportdefaultclassAboutextendsComponent{render(){return<h3>About Content</h3>;}}
  1. Home 组件
importReact,{Component}from"react";exportdefaultclassHomeextendsComponent{render(){return<h3>Home Content</h3>;}}
  1. Test 组件
importReact,{Component}from"react";exportdefaultclassTestextendsComponent{render(){return<h3>Test Content</h3>;}}
(2)components
  • MyNavLink 组件
importReact,{Component}from"react";import{NavLink}from"react-router-dom";import"./index.css";exportdefaultclassMyNavLinkextendsComponent{render(){return<NavLink activeClassName="selected"className="list-group-item"{...this.props}/>;}}
.selected{color:blue;font-weight:bold;background-color:#f0f0f0;}
(3)main
  1. App 组件
importReact,{Component}from"react";import{Route,Switch}from"react-router-dom";importHomefrom"./pages/Home";importAboutfrom"./pages/About";importTestfrom"./pages/Test";importMyNavLinkfrom"./components/MyNavLink/index";exportdefaultclassAppextendsComponent{render(){return(<div><h2>React Router Demo</h2><div><MyNavLink to="/about">About</MyNavLink><MyNavLink to="/home">Home</MyNavLink></div><div><Switch><Route path="/about"component={About}/><Route path="/home"component={Home}/><Route path="/home"component={Test}/></Switch></div></div>);}}
  1. index.jsx
importReactfrom"react";// 引入 React 核心库importReactDOMfrom"react-dom";// 引入 ReactDOMimportAppfrom"./App";// 引入 App 组件import{BrowserRouter}from"react-router-dom";// 渲染 App 组件到页面ReactDOM.render(<BrowserRouter><App/></BrowserRouter>,document.getElementById("root"),);

二、路由精准匹配与模糊匹配

1、基本介绍
  1. Route 默认是模糊匹配
  2. Route 的 exact 用于控制路由的匹配规则,确保只有当 URL 完全匹配时才渲染组件
2、基本使用
(1)pages
  1. About 组件
importReact,{Component}from"react";exportdefaultclassAboutextendsComponent{render(){return<h3>About Content</h3>;}}
  1. Home 组件
importReact,{Component}from"react";exportdefaultclassHomeextendsComponent{render(){return<h3>Home Content</h3>;}}
(2)components
  • MyNavLink 组件
importReact,{Component}from"react";import{NavLink}from"react-router-dom";import"./index.css";exportdefaultclassMyNavLinkextendsComponent{render(){return<NavLink activeClassName="selected"className="list-group-item"{...this.props}/>;}}
.selected{color:blue;font-weight:bold;background-color:#f0f0f0;}
(3)main
  1. App 组件
importReact,{Component}from"react";import{Route}from"react-router-dom";importHomefrom"./pages/Home";importAboutfrom"./pages/About";importMyNavLinkfrom"./components/MyNavLink/index";exportdefaultclassAppextendsComponent{render(){return(<div><h2>React Router Demo</h2><div><MyNavLink to="/about">About</MyNavLink><MyNavLink to="/home/a/b">Home</MyNavLink></div><div><Route exact path="/about"component={About}/><Route exact path="/home"component={Home}/></div></div>);}}
  1. index.jsx
importReactfrom"react";// 引入 React 核心库importReactDOMfrom"react-dom";// 引入 ReactDOMimportAppfrom"./App";// 引入 App 组件import{BrowserRouter}from"react-router-dom";// 渲染 App 组件到页面ReactDOM.render(<BrowserRouter><App/></BrowserRouter>,document.getElementById("root"),);

三、Redirect

1、基本介绍
  • Redirect 用于自动将用户从一个路由导航到另一个路由
2、基本使用
(1)pages
  1. About 组件
importReact,{Component}from"react";exportdefaultclassAboutextendsComponent{render(){return<h3>About Content</h3>;}}
  1. Home 组件
importReact,{Component}from"react";exportdefaultclassHomeextendsComponent{render(){return<h3>Home Content</h3>;}}
(2)components
  • MyNavLink 组件
importReact,{Component}from"react";import{NavLink}from"react-router-dom";import"./index.css";exportdefaultclassMyNavLinkextendsComponent{render(){return<NavLink activeClassName="selected"className="list-group-item"{...this.props}/>;}}
.selected{color:blue;font-weight:bold;background-color:#f0f0f0;}
(3)main
  1. App 组件
importReact,{Component}from"react";import{Route,Redirect,Switch}from"react-router-dom";importHomefrom"./pages/Home";importAboutfrom"./pages/About";importMyNavLinkfrom"./components/MyNavLink/index";exportdefaultclassAppextendsComponent{render(){return(<div><h2>React Router Demo</h2><div><MyNavLink to="/about">About</MyNavLink><MyNavLink to="/home">Home</MyNavLink></div><div><Switch><Route path="/about"component={About}/><Route path="/home"component={Home}/><Redirect to="/about"/></Switch></div></div>);}}
  1. index.jsx
importReactfrom"react";// 引入 React 核心库importReactDOMfrom"react-dom";// 引入 ReactDOMimportAppfrom"./App";// 引入 App 组件import{BrowserRouter}from"react-router-dom";// 渲染 App 组件到页面ReactDOM.render(<BrowserRouter><App/></BrowserRouter>,document.getElementById("root"),);
(4)路由规则
路由说明
/about匹配第一个 Route,渲染 About 组件
/home匹配第二个 Route,渲染 Home 组件
/other(不存在的路径)前两个 Route 都不匹配,匹配 Redirect,重定向到/about
http://www.jsqmd.com/news/528383/

相关文章:

  • Unity中斜抛运动的轨迹预测与实现
  • 别再死记硬背时序图了!用Arduino+逻辑分析仪,5分钟搞懂I2C的Start、ACK和Stop信号
  • Claude Code 抓取 Stitch UI
  • Node-RED物联网开发第一课:5分钟实现PLC数据模拟与调试(含周期性JSON生成技巧)
  • RMBG-2.0在IDEA开发环境中的调试技巧
  • 专家硬核评论:《本源级底层架构能协助华为优化到什么程度?》
  • 4大阶段攻克黑苹果:零基础也能避坑的系统安装指南
  • ROS2 rcl框架设计精要:为什么说它是连接上层应用与底层中间件的“翻译官”?
  • Clawdbot汉化版问题解决:常见连接故障排查指南
  • 5个高效技巧掌握MSI文件深度解析
  • 2026年支持多社交平台客服,全渠道智能客服系统详细解析 - 品牌2026
  • EcomGPT-7B智能广告投放:ROI预测与优化策略
  • AI头像生成器使用技巧:让Stable Diffusion出图更精准
  • 国风美学生成模型v1.0数据库集成:使用MySQL管理生成任务与作品
  • SeqGPT轻量化生成模型在客服系统的实战应用
  • 谱分解:从矩阵结构到数据降维的桥梁
  • 2026维生素D3哪个牌子好?五大品牌排行榜推荐 - 品牌排行榜
  • CLIP-GmP-ViT-L-14效果展示:低光照/模糊图像下的稳定图文匹配能力
  • 别再手动删注册表!CMD卸载软件的5个隐藏技巧(含批量卸载脚本)
  • 终极指南:用Python实现WPS Office自动化开发的完整解决方案
  • 基于Yi-Coder-1.5B的微信小程序开发:从零开始实战教程
  • MGeo地址相似度匹配:开箱即用,实测效果稳定可靠
  • 5G-A三载波聚合(3CC)实测:你的手机能跑多快?附支持机型清单
  • 逆向工程实战:解析JLinkARM.dll,手把手教你用Qt封装C++烧录类库
  • Godot拉伸设置全解析:从基础配置到高级场景适配技巧
  • Oni-Duplicity高效工具:《缺氧》存档全攻略
  • Phi-3 Forest Lab保姆级教程:Streamlit WebRTC集成实现实时语音输入
  • 企业级手机号关联QQ号码高效查询与安全验证解决方案
  • 国风美学生成模型v1.0风格探索:二十四节气主题系列作品展
  • Win11 hosts文件修改终极指南:从基础操作到高级技巧(含IPv6配置)