我对如何以及何时使用getChildRoutes
感到困惑,因为它是PlainRoute
的一部分。您如何首先访问PlainRoute
?因此,我可以使用<Route>
s而不是构建<PlainRoute>
组件,然后在组件内部渲染它将具有getChildRoutes? partialNextState
指的是什么?
答案 0 :(得分:2)
普通路由是普通的JavaScript对象,可以在<Router>
中使用,如下所示:
const routes = {
path: '/',
component: App,
indexRoute: {
component: Home,
},
childRoutes: [
{ path: 'page1', component: Page1 },
{
path: 'page2',
component: SomeWrapper,
childRoutes: [
{ path: 'subpage1', component: Subpage1 },
],
},
],
};
ReactDOM.render(<Router history={ browserHistory } routes={ routes }/>, document.body);
也就是说,indexRoute
- 如果存在 - 对应于将<IndexRoute>
添加为<Route>
的子项,childRoutes
对应于添加子<Route>
}秒。它们都接受与相应的JSX标签接受道具相同的属性。
普通路由非常有用,例如用于在多个文件中拆分路径定义。在大型应用程序中,将页面与路由层次结构中的确切位置分离可能很有用,并通过将childRoutes
导入直接父模块而不是将整个路径层次结构硬编码到根模块中来构建路由层次结构。如果使用普通路由,也可以很容易地构建可重用的导航组件,如选项卡容器和面包屑,因为路径本身可以作为定义这些组件应包含的链接的道具发送。
getChildRoutes
和getIndexRoute
是childRoutes
和indexRoute
属性的异步变体,允许动态路由和代码拆分。例如,你可以为了好玩,使getChildRoutes
递归地引用自己。我不知道partialNextState
应该是什么,我从来不需要使用它。