Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >React-Router-Switch

React-Router-Switch

原创
作者头像
杨不易呀
发布于 2023-09-30 23:23:38
发布于 2023-09-30 23:23:38
52200
代码可运行
举报
文章被收录于专栏:杨不易呀杨不易呀
运行总次数:0
代码可运行

前言

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:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import React from 'react';

class Other extends React.PureComponent {
    render() {
        return (
            <div>Other</div>
        )
    }
}

export default Other;

App.js:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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;
输入图片说明
输入图片说明

最后

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

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

我正在参与2023腾讯技术创作特训营第二期有奖征文,瓜分万元奖池和键盘手表

输入图片说明
输入图片说明

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
React-Router-手动路由跳转
手动路由跳转是React Router中一个重要的概念,它允许您在React应用程序中通过编程方式控制路由导航,而不是依赖于用户的交互操作。这种能力对于实现复杂的导航逻辑、处理表单提交、或基于某些条件进行路由跳转非常有用。
杨不易呀
2023/10/01
6460
React-Router-URL参数
React Router 是 React 应用中常用的路由管理库,而 URL 参数则是它的一个关键概念。URL 参数允许您在路由之间传递数据,从而使您的应用程序更灵活和交互性更强。
杨不易呀
2023/10/01
4000
React-Router-嵌套路由
React Router是一个用于处理路由和导航的库,它为React应用程序提供了强大的路由管理能力。而嵌套路由则是React Router中的一个重要概念,它允许您在应用程序中创建更复杂的页面布局和导航结构。
杨不易呀
2023/10/01
5180
React-Router-基本使用
路由维护了 URL 地址和组件的映射关系, 通过这个映射关系, 我们就可以根据不同的 URL 地址,去渲染不同的组件。
杨不易呀
2023/09/30
3540
React Router 邦邦两拳🥊 🥊
这是我参与11月更文挑战的第16天,活动详情查看:2021最后一次更文挑战」 简介
用户4793865
2023/01/12
3.8K0
React Router V6详解
SAP全称是【single-page application】,中文译为单页面应用。它是网站应用的一种模型,可以动态重写当前的页面来与用户交互,而不需要重新加载整个页面。相对于传统的 Web 应用程序,单页应用做到了前后端分离,即后端只负责处理数据提供接口,而页面逻辑和页面渲染都交由前端处理。前端发展到现在,单页应用的使用已经很广泛,目前时兴的 React、Vue、Angular 等前端框架均采用了 SPA 原则。
xiangzhihong
2023/01/06
8.3K0
React---路由的使用(一)
        1) 理解: value是function, 用来处理客户端提交的请求。
半指温柔乐
2021/04/26
1.6K0
React 路由详解(超详细详解)
使用 Link 是会有一些问题的, 他不会显示按钮的高亮显示, 所以我使用 NavLink 来替代它
全栈程序员站长
2022/08/10
6.2K0
React 路由详解(超详细详解)
React-Router-Redirect
React-Router-Redirect是React应用中的一个关键库,它提供了强大的导航和路由管理功能。本库的主要目的是让开发人员能够在不同页面之间实现流畅的跳转,同时提供了一种重要的功能:重定向。
杨不易呀
2023/10/01
3530
React-Router V6 使用详解
2.去除Switch中的<Redirect>,用react-router-dom中的Redirect 替代,或者用 <Navigate> 实现
程序狗
2021/12/17
4K0
(重磅来袭)react-router-dom 简明教程
BrowserRouter使用浏览器的History API来管理url及与浏览器进行交互, 需要服务器增加配置以让所有的url请求返回同一个页面
公众号---人生代码
2021/03/16
12.6K0
(重磅来袭)react-router-dom 简明教程
react 路由完整版「建议收藏」
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/130459.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/11
1.4K0
React的魅力: React-Router-集中式管理和Redux-核心概念
现在虽然我们能通过路由实现组件切换, 但是现在我们的路由都比较分散, 不利于我们管理和维护,所以 React 也考虑到了这个问题, 也给我们提供了统一管理路由的方案。
杨不易呀
2023/09/24
3970
React的魅力: React-Router-集中式管理和Redux-核心概念
React-Router-集中式管理
React Router 是 React 应用程序中常用的路由管理库,用于处理页面导航和路由控制。集中式管理是一种在大型应用程序中更好地组织和管理路由的方法,它有助于维护应用的可扩展性和可维护性。
杨不易呀
2023/10/01
3400
React 进阶 - React Router
用 React 或者 Vue 构建的应用都是单页面应用,单页面应用是使用一个 HTML 前提下,一次性加载 JavaScript , CSS 等资源,所有页面都在一个容器页面下,页面切换实质是组件的切换。
Cellinlab
2023/05/17
2.2K0
React 进阶 - React Router
react-react-dom v6 知识整合
1. BrowserRouter / HashRouter 相当于容器(类似router-view),用于指定路由的模式
用户9914333
2022/12/14
6.6K0
react-react-dom v6 知识整合
04-React路由5版本(高亮, 嵌套, 参数传递... )
和Link功能一样, 但是会在点击的时候自动追加和移除一个class,那就是active, 可以通过属性activeClassName修改
彼岸舞
2022/08/24
1.3K0
04-React路由5版本(高亮, 嵌套, 参数传递... )
滴滴前端二面常考react面试题(持续更新中)_2023-03-01
refs允许你直接访问DOM元素或组件实例。为了使用它们,可以向组件添加个ref属性。
用户10376779
2023/03/01
4.8K0
react-router 的使用与优化
react-router 可以创建单页应用。可以将组件映射到路由上,将对应的组件渲染到想要渲染的位置(根据路径的变化渲染出组件)。
多云转晴
2020/03/11
3.6K0
react-router4
react-router是一些封装好的组件用于前端路由,当我们点击的时候会出现一个虚拟的路由,并不会做页面的全刷新,实现不同组件之间的切换和跳转。(当然react-router里面把history.js这个库做了封装,history.js是基于window.history做的封装,所以react-router可以调用一些会话历史, history 知道如何去监听浏览器地址栏的变化, 并解析这个 URL 转化为 location 对象, 然后 router 使用它匹配到路由,最后正确地渲染对应的组件。)
_kyle
2020/08/24
1.7K0
react-router4
相关推荐
React-Router-手动路由跳转
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档