React Router 中 到底有什么用?

2023-12-01

我是 React 学习的新手,并尝试使用react-router-dom 构建一个应用程序。当我遇到“交换机”这个术语时,我能够实现基本的路由。谁能用我们使用 switch 的用例示例向我解释一下它的用途是什么?


由于您是新手,因此我将花费更多时间通过示例进行解释,并添加一些您可能需要方便使用的内容。

正如 Iddler 所说,Switch 或多或少类似于任何其他语言中的“Switch case”条件,但通常以它找到的第一个匹配项结束。

<Switch>
    <Route path="/home" component={Home} />
    <Route path="/about" component="{About} />
</Switch>

这是其最基本用途的一个例子。 Switch 确定块或条件的开始和结束。每个路由都会检查当前路径。假设我们正在研究“www.test.com”。所有“www.test.com”都是根“/”。所以Route会检查根之后的路径。因此,如果您有“www.test.com/home”,“/home”位于根目录之后,因此“Home”组件将在上面的示例中加载,如果您有“www.test.com/about”,则“关于”组件已加载。

请注意,您可以使用任何名称。组件和路径不需要相同。

在某些情况下,您可能想使用exact匹配精确的路径。当您有相似的路径时,这很有用。例如“/shop”和“/shop/shoes”。使用exact确保Switch匹配确切的路径,而不仅仅是第一个。

Eg:

<Switch>
    <Route exact path="/shop" component={Shop} />
    <Route exact path="shop/shoes" component="{Shoes} />
</Switch>

您还可以使用<Route... />没有<Switch>.

Eg:

<Route path="/home" component={Home} />

所以与直接组件加载不同,您只需加载一个组件,例如<Home />路由器使用 URL。

最后,<Route... />path 可以采用 url 数组来加载相同的组件。

Eg:

<Switch>
    <Route path={[ "/home", "/dashboard", "/house", /start" ]} component={Home} />
    <Route exact path={[ "/about", "/about/management", "/about/branches" ]} component="{About} />
</Switch>

我希望这有帮助。如果您需要任何类型的说明,请告诉我。 :)

UPDATE:

您并不需要始终以相同的格式编写路由器。以下是您可以使用的另一种格式;

<Router>
    <Switch>
      <Route path="/home">
        <Home />
      </Route>
      <Route path="/about">
        <About />
      </Route>
    </Switch>
</Router>

在现在的情况下,您希望能够处理输入错误 URL 时显示的内容。就像 404 页面一样。你可以用Router没有路径。就像常规的 switch 语句一样,它成为您的默认语句。

<Switch>
    <Route path="/home" component={Home} />
    <Route path="/about" component="{About} />
    <Route component="{PageNotFound} />
</Switch>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

React Router 中 到底有什么用? 的相关文章

随机推荐

  • SystemJS:加载构建文件

    我的 SystemJS 文件如下所示 function global map tells the System loader where to look for things var map angular2 boot app dist a
  • iOS 7 - viewDidLoad 和 viewDidAppear 之间的区别

    抱歉 这本身可能不是一个编程问题 而更多的是对 iOS 生命周期函数性质的询问 我有一个应用程序 其中有一个函数可以创建四个数组并通过数据库查询填充它们 首先 我从viewDidLoad函数 但是 每当加载视图时 视图实际显示之前都需要一段
  • 使用 JAXB 进行灵活编组

    我希望有一种灵活的方式来编组对象 单个对象的详细版本和多个对象版本的不太详细版本 例如 考虑我的部门模型 获取 位置 1
  • 对结构队列进行排序

    我目前有一个队列 其中包含用户指定数量的结构 称为Process 进程由 pid 突发和到达组成 我想按到达时间对队列进行排序 但我完全不知道从哪里开始 这是一些伪代码来帮助说明我想说的内容 struct Process int pid i
  • cmake找不到java,但是已经安装了

    我正在尝试使用 cmake 构建一个项目 这个项目主要使用java 问题是在代码中 find package Java REQUIRED 我收到以下错误 CMake Error at usr share cmake 2 8 Modules
  • 将日期字符串格式化为适合 Google 日历作为参数

    我有一个代表 2014 July 2014 等数据的字符串 我正在 javacript 中格式化此日期 以便我可以将其用作 Google 日历图表的参数 E g var x 2014 July 12 var splitted x spilt
  • 从 Blob 保存到本地文件

    我有一个难题要问你 我已经为此苦苦挣扎了一段时间 我正在寻找一种解决方案 我可以将文件保存到用户计算机 而无需本地存储 因为本地存储有 5MB 限制 我想要 保存到文件 对话框 但我想要保存的数据只能在 JavaScript 中使用 我想阻
  • Java String.replace/replaceAll 不工作

    因此 我试图解析 Java 中包含 左 方括号的字符串输入 我有str replace 但这绝对没有任何作用 我试过了replaceAll另外 具有多个不同的正则表达式 但输出始终保持不变 我想知道这是否可能是由于我所有的反斜杠字符都显示为
  • 影响 d3.js 中多个单独图表的交互?

    我正在尝试在 d3 js 中创建一个数据可视化 其中包含两个图表 一个平行轴图和水平颜色条图 我只是起了这个名字 但它基本上是一系列彩色矩形 平行轴图中的每条线都与颜色条图中的一组矩形相关联 现在 将鼠标悬停在给定的线上会突出显示该行 并将
  • 将 docker-compose 与 docker swarm 结合使用

    我在用着docker 1 12 1我有一个简单的 docker compose 脚本 version 2 services jenkins slave build slave image jenkins slave 1 0 restart
  • React-Native:无法在 Android 设备上以发布模式显示远程图像

    我正在我的 Android 设备 三星 9 Android 9 API 28 中运行一个简单的反应本机应用程序 因此在调试模式下 使用此命令行可以正常工作 react native run android 这是结果 但在释放模式下 reac
  • Jersey/REST--NoSuchMethodError:com.sun.jersey.core.reflection.ReflectionHelper.getContextClassLoaderPA()Ljava/security/Privilege

    当尝试使用 jersey 构建 REST 服务时 我收到 NoSuchMethodError 错误 任何帮助将非常感激 我的 POM xml
  • GetExtendedTcpTable 不返回与 netstat -ano 相同的结果

    我使用此代码来获取我的电脑中打开的端口的列表以及使用每个端口的应用程序 string Port GetListOfTcpPorts string ApplicationName string result string aux string
  • 通过测试侦听器删除(重复)失败的 TestNG 结果

    类似于这里发布的解决方案TestNG 重试失败的测试不会输出正确的测试结果 我尝试在 onFinish ITestContext context 期间使用测试侦听器删除 重复的 测试结果 尽管使用 context getFailedTest
  • Visual Studio 2012如何绘制窗口边框?

    如何使用 Windows 窗体实现与新的 Visual Studio 2012 主窗口中看到的相同的 alpha 边框效果 它的窗户似乎在发光 所以我不确定这是否是最好的方法 但是如果您使用 Spy 32 位 并查看窗口 您可以看到在 Vi
  • 使用 Sparklyr 完成时间序列

    我试图在我的时间序列数据集中找到丢失的分钟数 我为一个小样本的本地性能编写了一个 R 代码 test lt dfv gt mutate timestamp as POSIXct DaySecFrom UTC gt complete time
  • 使用枢轴点缩放画布后,x 和 y 坐标错误

    我正在尝试在画布上实现缩放 该缩放应集中在枢轴点上 缩放工作正常 但之后用户应该能够选择画布上的元素 问题是 我的平移值似乎不正确 因为它们的偏移量与我不缩放到枢轴点的值不同 缩放没有枢轴点并拖动效果很好 我使用了一些代码这个例子 相关代码
  • 为什么 python 字符串 split() 不分割

    我有以下 python 代码 class MainPage BaseHandler def post self location id reservations self request get all reservations for r
  • 除了 build/target 文件夹之外,简单的 spring-boot jar 不起作用

    我有一个简单的 spring boot 应用程序 但除了从 target build 文件夹运行之外它不起作用 这是我的所有配置和文件 请帮助我找出为什么它不起作用以及我做错了什么 当我从目标文件夹运行时它工作得很好java jar tar
  • React Router 中 到底有什么用?

    我是 React 学习的新手 并尝试使用react router dom 构建一个应用程序 当我遇到 交换机 这个术语时 我能够实现基本的路由 谁能用我们使用 switch 的用例示例向我解释一下它的用途是什么 由于您是新手 因此我将花费更