19.react路由嵌套

react路由嵌套

Index.js

import React, {Component} from 'react';

import {BrowserRouter as Router, Route, Link, Switch} from "react-router-dom";
import Home from './Home';
import User from './User';
import '../../../../assets/css/index.css'
//路由嵌套
class Index extends Component {

    render() {
        return (

            <Router>
                <div>

                    <header className="title">

                        <Link to="/">首页组件</Link>

                        <Link to="/user">用户页面</Link>

                    </header>

                    <Switch>
                        <Route exact path="/" component={Home}/>
                        <Route path="/user" component={User}/>
                    </Switch>
                </div>

            </Router>
        );
    }
}

export default Index;
import React, {Component} from 'react';
import {BrowserRouter as Router, Route, Link, Switch} from "react-router-dom";
import Info from "./User/Info";
import Main from "./User/Main";

class User extends Component {

    constructor(props) {
        super(props);
        this.state =
            {}
    }

    render() {
        return (
            <div className='content'>

                <div className='left'>
                    <Link to='/user/'>用户中心</Link>
                    <br/>
                    <br/>
                    <Link to='/user/main'>个人中心</Link>
                </div>

                <div className='right'>
                    <Switch>
                        <Route exact path={`${this.props.match.url}/`} component={Info}/>
                        <Route path={`${this.props.match.url}/main`} component={Main}/>
                    </Switch>
                </div>


            </div>
        )
    }
}

export default User;

User.js

import React, {Component} from 'react';
import {BrowserRouter as Router, Route, Link, Switch} from "react-router-dom";
import Info from "./Info";
import Main from "./Main";

class User extends Component {

    constructor(props) {
        super(props);
        this.state =
            {}
    }

    render() {
        return (
            <div className='content'>

                <div className='left'>
                    <Link to='/user/'>用户中心</Link>
                    <br/>
                    <br/>
                    <Link to='/user/main'>个人中心</Link>
                </div>

                <div className='right'>
                    <Switch>
                        <Route exact path={`${this.props.match.url}/`} component={Info}/>
                        <Route path={`${this.props.match.url}/main`} component={Main}/>
                    </Switch>
                </div>


            </div>
        )
    }
}

export default User;

Home.js

import React, {Component} from 'react';

class Home extends Component {

    constructor(props) {
        super(props);
        this.state =
            {}
    }

    render() {
        return (
            <div>

                <h1>Home组件</h1>
            </div>
        )
    }
}

export default Home;

Info.js

import React, {Component} from 'react';

class Info extends Component {

    constructor(props) {
        super(props);
        this.state =
            {}
    }

    render() {
        return (
            <div>

                <h1>用户信息</h1>
            </div>
        )
    }
}

export default Info;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值