React-Router:IndexRoute 的目的是啥?

Posted

技术标签:

【中文标题】React-Router:IndexRoute 的目的是啥?【英文标题】:React-Router : What is the purpose of IndexRoute?React-Router:IndexRoute 的目的是什么? 【发布时间】:2015-12-18 20:14:24 【问题描述】:

我不明白使用 IndexRouteIndexLink 的目的是什么。似乎无论如何下面的代码都会首先选择 Home 组件,除非激活了 About 路径。

<Route path="/" component=App>
  <IndexRoute component=Home/>
  <Route path="about" component=About/>
</Route>

对比

<Route path="/" component=App>
  <Route path="home" component=Home/>
  <Route path="about" component=About/>
</Route>

第一种情况的优势/目的是什么?

【问题讨论】:

为什么在第一个示例中选择Home,除非路径是/home?查看文档中的解释:github.com/rackt/react-router/blob/master/docs/guides/basics/… 你可以想象 main 是一个导航栏,而 Home 和 About 是你可以在导航栏上点击进入的主页。 在上面的示例中,转到/ 将呈现AppHome 作为孩子传递。在下面的示例中,转到 / 将渲染 App,而 既不 HomeAbout 被渲染,因为它们的路径都不匹配。 哦!!!你能把它作为一个答案,这样我就可以给你信用吗?谢谢! 在从 v0.13 到 v1.0 的更改中,他们将名称从 DefaultRoute 更改为 IndexRoute。我发现“默认”更好地描述了目的。 github.com/rackt/react-router/blob/master/… 【参考方案1】:

在上面的示例中,转到/ 将呈现AppHome 作为子级传递。在下面的示例中,转到/ 将呈现App,而既不 Home 也不呈现About,因为它们的路径都不匹配。

对于旧版本的 React Router,可以在相关版本的 Index Routes and Index Links page 上获得更多信息。从 4.0 版本开始,React Router 不再使用IndexRoute 抽象来实现相同的目标。

【讨论】:

那么我们可以在实践中使用这个功能做什么呢? 例如,我们可以创建一个父容器,多个子路由,并将其中一个子路由设置为默认路由(IndexRoute)。或者,如果我们不需要默认子路由,并且需要提示用户他要选择某些东西(那么没有 IndexRoute) @AlexHopeO'Connor 谢谢,我已经更新了答案的后半部分 小时候传递的确切含义是什么?在后台加载?能够访问道具?其他的?

以上是关于React-Router:IndexRoute 的目的是啥?的主要内容,如果未能解决你的问题,请参考以下文章

在 react-router v4 中使用 React IndexRoute

反应路由器总是显示 IndexRoute

react-router

react-router

在 React-router 中没有带链接的 href

react-router 组件式配置与对象式配置小区别