React-Router-Switch

简介: React-Router-Switch

前言


React Router Switch 是 React Router 库的一部分,它是一个用于渲染与当前 URL 匹配的第一个 <Route><Redirect> 的包裹组件。它通常用于路由配置中,以确保只渲染与当前 URL 匹配的第一个路由。


React Router 是 React 应用程序中用于管理页面导航和路由的库,它允许你在不刷新整个页面的情况下,根据 URL 的变化渲染不同的组件。Switch 组件是 React Router 中的一个关键组件,因为它帮助你避免多个路由同时匹配的问题。


使用 Switch,你可以按顺序放置多个 <Route><Redirect> 组件,并且它将只匹配第一个与当前 URL 匹配的路由,忽略后续的路由。这有助于确保只有一个组件与 URL 匹配,避免渲染多个匹配的组件,从而保持路由的一致性和可预测性。


总之,React Router Switch 是 React Router 中的一个重要工具,用于确保在导航时只渲染一个特定的路由组件,以确保良好的用户体验和路由逻辑。它是构建单页面应用程序(SPA)的必备组件之一。




Switch


  • 默认情况下路由会从上至下匹配所有的 Route, 只要匹配都会显示
  • 如果 Route 没有指定 path, 那么表示这个 Route 和所有的资源地址都匹配

新建 Other.js:

import React from 'react';
class Other extends React.PureComponent {
    render() {
        return (
            <div>Other</div>
        )
    }
}
export default Other;

App.js:

import React from 'react';
import Home from './components/Home'
import About from './components/About'
import Other from './components/Other'
import {BrowserRouter, HashRouter, Link, NavLink, Route, Routes} from 'react-router-dom';
class App extends React.PureComponent {
    render() {
        return (
            <div>
                <BrowserRouter>
                    <Link to={'/home'}>Home</Link>
                    <Link to={'/home/about'}>About</Link>
                    <Route path="/home" component={Home}/>
                    <Route path="/home/about" component={About}/>
                    <Route component={Other}/>
                </BrowserRouter>
            </div>
        )
    }
}
export default App;


在页面的体现就是不管你点击的是 Home 还是 About 都会显示 Other 组件出来,如果想要匹配到了之后就不在往后匹配了就需要使用如下的方案进行解决即可。


  • 但是在企业开发中大部分情况下, 我们希望的是一旦有一个匹配到了后续就不要再匹配了
  • 此时我们就可以通过 Switch 来实现

更改 App.js:

import React from 'react';
import Home from './components/Home'
import About from './components/About'
import Other from './components/Other'
import {BrowserRouter, HashRouter, Link, NavLink, Route, Routes, Switch} from 'react-router-dom';
class App extends React.PureComponent {
    render() {
        return (
            <div>
                <BrowserRouter>
                    <Link to={'/home'}>Home</Link>
                    <Link to={'/about'}>About</Link>
                    <Switch>
                        <Route exact path="/home" component={Home}/>
                        <Route exact path="/about" component={About}/>
                        <Route exact component={Other}/>
                    </Switch>
                </BrowserRouter>
            </div>
        )
    }
}
export default App;


最后

本期结束咱们下次再见👋~

🌊 关注我不迷路,如果本篇文章对你有所帮助,或者你有什么疑问,欢迎在评论区留言,我一般看到都会回复的。大家点赞支持一下哟~ 💗

相关文章
|
1月前
peer react@“^16.8.0 || 16.9.0-alpha.0“ from mobx-react@6.1.4
peer react@“^16.8.0 || 16.9.0-alpha.0“ from mobx-react@6.1.4
11 0
|
4月前
|
前端开发 JavaScript API
React Router v6 完全指南(下)
React Router v6 完全指南(下)
|
4月前
|
存储 资源调度 前端开发
React Router v6 完全指南(上)
React Router v6 完全指南(上)
169 0
|
7月前
|
前端开发
React-Router-嵌套路由
React-Router-嵌套路由
52 0
|
8月前
|
缓存 移动开发 前端开发
【React】react-router 路由详解
【React】react-router 路由详解
262 1
【React】react-router 路由详解
|
9月前
|
前端开发
【react 中router v6 与 v5 区别】
【react 中router v6 与 v5 区别】
|
10月前
|
前端开发 网络架构
【React】React-router路由
React-router路由
62 0
|
10月前
|
前端开发 JavaScript API
react-router与react-router-dom区别
React 是一个流行的JavaScript库,用于构建用户界面,而`React Router`是为 React 应用程序提供路由功能的常用解决方案之一。 React Router是一个用于构建路由的库,它提供了核心的API,例如`Router`、`Route`和`Switch`。它允许开发者将不同的组件与特定的URL路径相关联,并根据用户的导航选择加载相应的组件。React Router通过管理URL的变化,帮助我们在单页应用程序中实现导航和路由。 然而,React Router本身并没有提供直接操作DOM进行路由跳转的API。这就是`React Router DOM`的出现背景。
209 0
|
11月前
|
移动开发 JavaScript 前端开发
React-Router
React-Router
51 0
|
前端开发 网络架构 UED
React Router
React Router
88 0