当前位置: 首页 > 知识库问答 >
问题:

javascript - react-router-dom的Link组件的realtive属性的区别?

乔鸿骞
2024-03-25

在react-router-dom V6的官方文档中,https://baimingxuan.github.io/react-router6-doc/components/li...

我发现Link组件有一个属性叫relative,值为route或path,我尝试了多种路由嵌套,但依旧无法明白route和path的区别,哪位大佬能帮忙解释一下

共有1个答案

袁奇逸
2024-03-25

react-router-domLink 组件中,relative 属性用于指定链接的解析方式。relative 属性的值可以是 routepath,这两种方式在解析链接时有所区别。

  1. route:
* 当 `relative` 属性设置为 `route` 时,`Link` 组件会基于当前的路由配置来解析链接。这意味着,它会查找与给定 `to` 属性值匹配的路由定义,并使用该路由的 `path` 属性来生成完整的 URL。* 这种方式的好处是,即使你的路由配置发生了改变(例如,添加或删除了一些路由),只要路由的名称没有改变,`Link` 组件生成的链接仍然会指向正确的位置。* 使用 `route` 方式,你通常会在 `to` 属性中指定路由的名称,而不是完整的路径。
  1. path:
* 当 `relative` 属性设置为 `path` 时,`Link` 组件会直接解析 `to` 属性中的路径,并基于当前的 URL 来生成完整的链接。这意味着,它会将 `to` 属性中的路径视为相对于当前 URL 的路径。* 使用 `path` 方式,你需要在 `to` 属性中提供完整的路径(或相对于当前 URL 的路径)。

选择哪种方式取决于你的具体需求。如果你希望链接的解析与路由配置保持同步,那么使用 route 方式可能更合适。如果你希望直接控制链接的路径,那么使用 path 方式可能更合适。

需要注意的是,relative 属性是 react-router-dom V6 中引入的新特性,用于提供更灵活的链接解析方式。在之前的版本中,可能没有这个属性,或者其行为可能有所不同。因此,在查看文档或示例代码时,请确保你正在查阅与你正在使用的 react-router-dom 版本相对应的文档。

 类似资料:
  • 我正在尝试构建一个简单的组件,它将进行一次API调用,2秒钟后将重定向到另一个页面。为此,我尝试使用react router dom中的重定向组件,但导入失败 我得到一个错误:“react router dom没有导出的成员‘重定向’。” 版本"react-router-dom":"^6.0.0-beta.0",

  • 我想在我的< code >上添加属性 似乎路线路径确实与问号混淆了。如果我把它换成其他东西,比如一个符号戳,它就会“起作用”。然而,这不是我想要的格式。我想要常规的<代码> 我找不到关于如何使这样的东西工作的文档。我看到了一些关于url的部分的东西,但我不太理解它。 谢谢你的所有帮助

  • 问题内容: 我需要使用路由器将道具传递到组件。这是我的代码: 如您所见,isAuthenticated我想传递给Login组件的道具。 当我登录道具时, isAuthenticated 道具不存在。我做错了什么?如何正确通过道具?我关注了文档以及其他讨论。据我了解,它应该可以工作。的版本 做出反应路由器 和 反应路由器- DOM 是 4.0.0 问题答案: 像这样传递它: 它应该在“登录组件”中可

  • 问题内容: 我有一个带有旋转幻灯片的 仪表板 ,每个幻灯片在 Bldgs中 都有一个对应的选项卡。两者并有孩子我。 当用户单击特定的幻灯片时,需要告诉以便告诉它在路由到时显示选项卡。 我 相信 ,我从传递正确的索引值达到和向下。但是,我的文件中抛出一个错误,指出: 在我开始将函数传递给组件之前,我的代码运行良好。 Index.js App.js Dashboard.js Bldgs.js 问题答案