我會想象你的路由樹是這樣的:
/sites
(Sites.js)
- /:id1
(Site1.js)
- /:id2
(Site2.js)
您index.js裏面,這樣的事情(使用客戶端爲例):
render((
<Router history={browserHistory}>
<Route path="/" component={App}>
<IndexRoute component={Home} />
<Route path="/sites" component={Sites}>
<Route path="/sites/:id" component={Site}/>
</Route>
</Route>
</Router>
), document.getElementById('app'));
每條路都有附隨零件。你可以在這些組件中拋出任何你想要的東西,儘管包含一些導航到子路由的方式可能會有所幫助。
PlainRoute版本(雖然我不知道你爲什麼會想):
const rootRoute = {
component: 'div',
childRoutes: [{
path: '/',
component: require('./components/App'),
childRoutes: [ require('./routes/Sites') ]
}]
}
render(
<Router history={browserHistory} routes={rootRoute} />,
document.getElementById('example')
);
'./routes/Sites ':
module.exports = {
path: 'sites',
getChildRoutes(location, cb) {
require.ensure([], (require) => cb(null, [ require('./routes/Site') ]))
},
getComponent(nextState, cb) {
require.ensure([], (require) => cb(null, require('./components/Sites')))
}
}
' ./routes/Site' :
module.exports = {
path: 'sites/:id',
getComponent(nextState, cb) {
require.ensure([], (require) => cb(null, require('./components/Site')))
}
}
您如何對PlainRoutes進行此操作,示例如何? – GreeKatrina
在可讀性方面,當JSX更高效時,我不知道爲什麼要使用PlainRoutes。根據示例中使用的文件結構,我將在PlainRoutes版本中追加到最初的答案。 –
正如你可以看到[這裏](https://github.com/reactjs/react-router/blob/master/examples/huge-apps/app.js),它更適合代碼分割。無論如何,先謝謝你。 – GreeKatrina