IndexRoute
用于给父路由提供默认的子组件,与 <Route>
相比,不能拥有 path
属性。
属性
component { Component } #
当匹配到当前路由上时匹配的组件,会被渲染为父组件的 this.props.children
。
const routes = ( <Route path="/" component={App}> <IndexRoute component={Groups} /> </Route> ) class App extends React.Component { render () { return ( <div> {this.props.children} </div> ) } }
components { Object } #
可以定义多个命名组件,这样不会直接渲染为父组件的 children, 而是当做 props 赋给父组件。
const routes = ( <Route path="/" component={App}> <IndexRoute components={{main: Groups, sidebar: GroupsSidebar}} /> </Route> ) class App extends React.Component { render () { const { main, sidebar } = this.props return ( <div> <div className="Main"> {main} </div> <div className="Sidebar"> {sidebar} </div> </div> ) } }
方法
getComponent #
与 component
类似,异步获取组件,用于进行代码分离。
<IndexRoute getComponent={(nextState, cb) => { // 异步方法获取组件 cb(null, Course) }} />
方法参数:
参数名 | 类型 | 描述 | 必选 | 支持版本 |
---|---|---|---|---|
nextState | Object | |||
callback | Function |
getComponents #
与 components
类似,异步获取组件,用于进行代码分离。
<IndexRoute getComponents={(nextState, cb) => { // 异步方法获取组件 cb(null, {sidebar: CourseSidebar, content: Course}) }} />
方法参数:
参数名 | 类型 | 描述 | 必选 | 支持版本 |
---|---|---|---|---|
nextState | Object | |||
callback | Function |