配置文件
import Index from '../views/Index'
import Movie from '../views/two/Movie'
import Place from '../views/two/Place'
import My from '../views/two/My'
const routes=[
{
path:'/index',
component:Index,
children:[
{
path:'/index/movie',
component: Movie
},
{
path:'/index/place',
component: Place
},
{
path:'/index/my',
component: My
}
]
}
];
export default routes;
递归路由
import React from 'react';
import {Route} from 'react-router-dom'
const RouterView=(props)=>{
console.log(props.routes);
return props.routes.map((item,index)=>{
return <Route key={index} path={item.path} render={(routeProps)=>{ // routeProps 路由元信息
// 判断当前得路由对象是否存在子路由
if(item.children){ // 存在路由嵌套 递归函数
return <item.component {...routeProps} routes={item.children}/>
}else{ // 不存在路由嵌套
return <item.component {...routeProps}/>
}
}}/>
})
}
export default RouterView;
使用方法
import React, { Component } from 'react'
import {BrowserRouter} from 'react-router-dom'
import RouterView from './router/index'
import config from './router/config'
export default class App extends Component {
render() {
return (
<div className='App'>
<BrowserRouter>
{/* 加载/展示路由视图组件 */}
<RouterView routes={config}/>
</BrowserRouter>
</div>
)
}
}