1、index.js 内容:

  

import React from 'react'
import ReactDOM from 'react-dom'
import { renderRoutes } from 'react-router-config'
import { BrowserRouter } from 'react-router-dom'
import routes from './js/routes'
import './index.css'
import registerServiceWorker from './registerServiceWorker' ReactDOM.render((
<BrowserRouter>
{renderRoutes(routes)}
</BrowserRouter>), document.getElementById('root'))
registerServiceWorker()

2、routes.js 内容

/**
* Created by Administrator on 2017/12/20.
*/
import Root from './Root';
import Home from './containers/Home'
import ManagerHome from './containers/ManagerHome'
import StaffHome from './containers/StaffHome'
import Login from './containers/Login' const routes = [
{
component: Root,
redirect: '/home',
routes: [
{
path: '/home',
// exact: true,
component: Home,
routes: [
{
path: '/home/ManagerHome',
component: ManagerHome,
},
{
path: '/home/StaffHome/:id',
component: StaffHome,
},
]
},
{
path: '/Login',
component: Login,
}
]
}
]; export default routes;

 3、Root.js :

/**
* Created by Administrator on 2017/12/20.
*/
import React, {Component} from 'react';
import {renderRoutes} from 'react-router-config';
import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider';
import '../images/font/iconfont.css'
import './Root.css' class Root extends Component {
render(props) {
console.log('------>Root');
let {route} = this.props;
return (
<MuiThemeProvider id="root" className="homeDiv">
{/* child routes won't render without this */}
{renderRoutes(route.routes)}
</MuiThemeProvider>
)
}
} export default Root;

4、Home.js (子路由):

/**
* Created by Administrator on 2017/12/20.
*/
import React, {Component} from 'react';
import homeService from '../service/homeService';
import {renderRoutes} from 'react-router-config' class Home extends Component {
constructor(props) {
super();
this.checkAuth();
} checkAuth() {
homeService.checkAuth().then(res => {
if (res.ispassed) {
let user = res.info;
if (user.type == '1')
this.props.history.push('/home/ManagerHome')
else
this.props.history.push('/home/StaffHome/'+user.id)
}
else
this.props.history.push('/Login')
})
} render() {
let {route} = this.props;
return (
<div>
{renderRoutes(route.routes, {someProp: 'these extra props are optional'})}
</div>
)
}
} export default Home;

  

添加react-router的更多相关文章

  1. React Router基础使用

    React是个技术栈,单单使用React很难构建复杂的Web应用程序,很多情况下我们需要引入其他相关的技术 React Router是React的路由库,保持相关页面部件与URL间的同步 下面就来简单 ...

  2. react router 4.0以上的路由应用

    thead>tr>th{padding:8px;line-height:1.4285714;border-top:1px solid #ddd}.table>thead>tr& ...

  3. 关于react router 4 的小实践

    详细代码栗子:https://github.com/wayaha/react-dom-CY clone然后 npm install npm start 分割线 1.这个项目使用create-react ...

  4. React Router 4.x 开发,这些雷区我们都帮你踩过了

    前言 在前端框架层出不穷的今天,React 以其虚拟 DOM .组件化开发思想等特性迅速占据了主流位置,成为前端开发工程师热衷的 Javascript 库.作为 React 体系中的重要组成部分:Re ...

  5. React Router教程

    React Router教程 React项目的可用的路由库是React-Router,当然这也是官方支持的.它也分为: react-router 核心组件 react-router-dom 应用于浏览 ...

  6. React Router API文档

    React Router API文档 一.<BrowserRouter> 使用HTML5历史记录API(pushState,replaceState和popstate事件)的<Rou ...

  7. React Router 用法

    React Router 用法 一.DEMO import React from "react"; import { HashRouter as Router, Route, Li ...

  8. 笔记react router 4(二)

    上一篇我们提到react router 4的dom特性.那么这一次,我们来说一说4.X中的路由组件嵌套. 用过3.X的同学应该知道,路由组件的嵌套(即,路由的配置)方式是通过给<Route> ...

  9. React Router基础教程

    React是个技术栈,单单使用React很难构建复杂的Web应用程序,很多情况下我们需要引入其他相关的技术 React Router是React的路由库,保持相关页面部件与URL间的同步 下面就来简单 ...

  10. React Router学习

    React Router教程 本教程引用马伦老师的的教程 React项目的可用的路由库是React-Router,当然这也是官方支持的.它也分为: react-router 核心组件 react-ro ...

随机推荐

  1. 51nod 1967 路径定向(不错的欧拉回路)

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1967 题意: 思路: 出度=入度,这很容易想到欧拉回路,事实上,这道题目 ...

  2. UVa 247 电话圈(Floyd传递闭包)

    https://vjudge.net/problem/UVA-247 题意: 如果两个人相互打电话,则说他们在同一个电话圈里.例如,a打给b,b打给c,c打给d,d打给a,则这4个人在同一个圈里:如果 ...

  3. python 字符串转变量方法

    1.response=eval('requests.'+func.lower())(destURL, headers=requestHeaders, data=postData, params=que ...

  4. 用 Excel 生成和管理 Markdown 表格--转载

    Markdown 作为一种轻量级的标记语言,用来进行简单的文本排版,确实方便快捷.但 Markdown 标记语言的属性,也使得其在表格处理上略显繁琐且不直观.而 Excel 几乎就是表格的代名词,借助 ...

  5. Cocos2d-x学习笔记(七)菜单

    菜单类继承关系如下: 图1 菜单类继承关系 文本菜单只能显示文本,包括:MenuItemLabel.MenuItemFont和MenuItemAtlasFont: #include "Hel ...

  6. A start job is running for Raise network interface(5min 13s )问题解决方法

    命令:sudo vim /etc/systemd/system/network-online.target.wants/networking.service将里面的TimeoutStartSec=5m ...

  7. Oracle 12c Windows安装、介绍及简单使用(图文)

    1.下载 地址为:http://www.oracle.com/technetwork/cn/database/enterprise-edition/downloads/index.html 含企业版和 ...

  8. Lua 中与字符串有关的函数学习

    string1 = "lua" print(string.upper(string1)) string2 = 'LGS' print(string.lower(string2)) ...

  9. robot 批处理文件

    robot自带的ride工具不好用,就像填表格似的写脚本,太拘束.所以一直在用sublime text写robot脚本,但是也有问题:用sublime text写的脚本,只能运行一个文件的case,并 ...

  10. 【python】print · sys.stdout · sys.stderr

    参考文档 Python重定向标准输入.标准输出和标准错误 http://blog.csdn.net/lanbing510/article/details/8487997 python重定向sys.st ...