添加react-router
2024-10-16 14:14:26
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;
最新文章
- What is Heterogeneous Computing?
- 无效的过程调用或参数: &#39;Instr&#39;解决方法
- 菜鸟学SSH(十八)——Hibernate动态模型+JRebel实现动态创建表
- 代码规范--捡拾(SQL语句)
- 数独GUI程序项目实现
- (转)Unity控制反转和依赖注入
- windows新增/修改/删除系统环境变量bat示例,一键配置JAVA_HOME
- mysq存储金额的数值类型选择
- java JVM虚拟机
- 【Django】django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.
- Sublime Text快捷键与插件介绍
- Daily Scrum NO.10
- WF控制台工作流(1)
- python 删除2天前后缀为.log的文件
- Extended VM Disk In VirtualBox or VMware (虚拟机磁盘扩容)
- goole机器学习视频链接【学习笔记】
- c++刷题(9/100):链表
- 四则运算(Android)版
- 移植gdb到海思3716板子的方法【转】
- js正则判断日期
热门文章
- spring Boot启动报错Initialization of bean failed; nested exception is java.lang.NoSuchMethodError: org.springframework.core.annotation.AnnotatedElementUtils.getAnnotationAttributes
- UVa 1614 奇怪的股市
- 非[无]root权限 服务器 下安装perl以及perl模块--转载
- MyEclipse2014 优化设置
- c++ primer plus 第三章 课后题答案
- js事件轮询机制
- Java JDK5新特性-增强for
- English trip -- VC(情景课) 7 B Clothing 服装
- LeetCode--136--只出现一次的数字
- Zepto常见问题