react后台管理--路由demo

react后台管理系统

代码演示效果
在这里插入图片描述

1. 入口文件 index

index.js

import React from 'react'
import ReactDOM from 'react-dom'

import Router from './Router'

ReactDOM.render(<Router></Router>, document.getElementById('root'))

index.css

body{
    padding: 0px;
    margin: 0px;
}

.mainDiv{
    display: flex;
    width: 100%;
}
.leftNav{
    width: 16%;
    background-color: #c0c0c0;
    color:#333;
    font-size:24px;
    height: 1000px;
    padding: 20px;
}
.rightNav{
    width: 84%;
    height:1000px;
    background-color: #fff;
    font-size:20px;

}

.topNav{
    height:50px ;
    background-color: #cfdefd;
}
.topNav ul{
   display: flex; 
   margin: 0px;
   padding: 0px;
}
.topNav li{
   padding: 10px;
   text-align: center;
   list-style: none;
 }
 .videoContent{
     padding:20px;
 }

2. 路由文件 Router.js

import React from 'react';
import { BrowserRouter as Router, Route, Link } from 'react-router-dom'

import Index from './components/Index'
import Videos from './components/Videos'
import Workplace from './components/Workplace'

import './index.css'

function Routers() {

    let routerConfig = [
        { path: '/', title: '博客首页', exact: true, component: Index },
        { path: '/video', title: '视频教程', exact: false, component: Videos },
        { path: '/workplace', title: '职场技能', exact: false, component: Workplace }
    ]

    return (
        <Router>
            <div className="mainDiv">
                <div className="leftNav">
                    <h3>一级导航</h3>
                    <ul>
                        {
                            routerConfig.map((item, index) => {
                                return (
                                    <li key={index + item}><Link to={item.path}>{item.title}</Link></li>
                                )
                            })
                        }
                    </ul>
                </div>
                <div className="rightNav">
                    {
                        routerConfig.map((item, index) => {
                            return (
                                <Route key={index + item} path={item.path} component={item.component} exact={item.exact}></Route>
                            )
                        })
                    }
                </div>
            </div>
        </Router>

    )
}

export default Routers;

3. 组件 component

3.0 video

Flutter.js
import React, { Component } from 'react';

class Flutter extends Component {
    constructor(props) {
        super(props);
        this.state = {  }
    }
    render() { 
        return ( 
            <h2>我是首页Flutter</h2>
         );
    }
}
 
export default Flutter;
ReactPage.js
import React, { Component } from 'react';

class ReactPage extends Component {
    constructor(props) {
        super(props);
        this.state = {  }
    }
    render() { 
        return ( 
            <h2>我是首页ReactPage</h2>
         );
    }
}
 
export default ReactPage;
Vue.js
import React, { Component } from 'react';

class Vue extends Component {
    constructor(props) {
        super(props);
        this.state = {  }
    }
    render() { 
        return ( 
            <h2>我是首页Vue</h2>
         );
    }
}
 
export default Vue;

3.0 workplace

GetUp.js
import React, { Component } from 'react';

class GetUp extends Component {
    constructor(props) {
        super(props);
        this.state = {  }
    }
    render() { 
        return ( 
            <h2>我是GetUp</h2>
         );
    }
}
 
export default GetUp;
Money.js
import React, { Component } from 'react';

class Money extends Component {
    constructor(props) {
        super(props);
        this.state = {  }
    }
    render() { 
        return ( 
            <h2>我是Money</h2>
         );
    }
}
 
export default Money;

3.1 首页 Index.js

import React, { Component } from 'react';

class Index extends Component {
    constructor(props) {
        super(props);
        this.state = {  }
    }
    render() { 
        return ( 
            <h2>我是首页</h2>
         );
    }
}
 
export default Index;

3.2 Videos.js

import React, { Component } from 'react';
import {Link, Route} from 'react-router-dom'

import ReactPage from './video/ReactPage'
import Flutter from './video/Flutter'
import Vue from './video/Vue'

class Videos extends Component {
    constructor(props) {
        super(props);
        this.state = {  }
    }
    render() { 
        return ( 
           <div>
               <div className="topNav">
                   <ul>
                       <li><Link to="/video/reactpage/">React教程</Link></li>
                       <li><Link to="/video/flutter/">flutter教程</Link></li>
                       <li><Link to="/video/vue/">vue教程</Link></li>
                   </ul>
               </div>
               <div className="videoContent">
                   <div><h3>视频教程</h3></div>
                   <Route path="/video/reactpage/" component={ReactPage}></Route>
                   <Route path="/video/flutter/" component={Flutter}></Route>
                   <Route path="/video/vue/" component={Vue}></Route>
               </div>
           </div>
         );
    }
}
 
export default Videos;

3.3 Workplace.js

import React, { Component } from 'react';
import { Link, Route } from 'react-router-dom'

import GetUp from './workPlace/GetUp'
import Money from './workPlace/Money'

class Workplace extends Component {
    constructor(props) {
        super(props);
        this.state = {}
    }
    render() {
        return (
            <div>
                <div className="topNav">
                    <ul>
                        <li><Link to="/workplace/money">程序员加薪秘籍</Link></li>
                        <li><Link to="/workplace/getup">程序员早起攻略</Link></li>
                    </ul>
                </div>
                <div className="videoContent">
                    <div><h3>职场软技能</h3></div>
                    <Route path="/workplace/money" component={Money}></Route>
                    <Route path="/workplace/getup" component={GetUp}></Route>
                </div>
            </div>
        );
    }
}

export default Workplace;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

落花流雨

你的鼓励将是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值