十二 react 嵌套路由

// 这不仅仅是一个路由文件,它也是一个路由组件
// BrowserRouter是一个路由组件(自带history模式),同时还有一个HashRouter(自带hash模式)
import { BrowserRouter, Switch, Route, Redirect } from 'react-router-dom'
import About from '../pages/about.js'
import Home from '../pages/home.js'
import User from '../pages/user.js'
import Apple from '../pages/apple'
import Blane from '../pages/blane'
const BaseRouter = () => {
    return (
        <BrowserRouter>
            {/* 每一个Route的外层需要一个Switch标签 */}
            {/* exact 精确匹配 */}
            <Switch>
                {/* 路由重定向  from当前访问的路径  to需要重新定向的路径*/}
                <Redirect from="/" to="/home" exact />
                <Route exact path='/user' component={User}></Route>
                {/* 嵌套路由位置在最底部否则无法切换其它同级路由 */}
                <Route exact to="/home" component={() => (
                    <Switch>
                        <Home>
                            {/* 嵌套路由 */}
                            <Switch>
                                <Redirect from="/home" to="/apple" exact />
                                <Route exact path='/about' component={About}></Route>
                                <Route exact path='/apple' component={Apple}></Route>
                                <Route exact path='/blane' component={Blane}></Route>
                            </Switch>
                        </Home>
                    </Switch>
                )}>
                </Route>

            </Switch>
        </BrowserRouter >
    )
}
export default BaseRouter

嵌套路由出口使用

this.props.children 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值