react学习(7)——路由配置
1. 新建文件routes.js,分别定义页面的路由信息和其他信息
const Routes = {
: {
title: "home",
pageName: "home",
path: "/home"
},
101: {
title: "page1",
pageName: "page1",
path: "/page1"
},
: {
title: "page2",
pageName: "page2",
path: "/page2"
},
: {
title: "page3",
pageName: "page3",
path: "page3"
}
};
export default Routes;
2. 新建文件RouteHOC.js
import React from 'react';
const RouteFac = (Route) => {
return class HOCRoute extends React.Component {
render() {
return <Route {...this.props} />;
}
};
};
export default RouteFac;
3. 新建文件utils/history.js
import { createBrowserHistory as createHistory } from 'history';
export default createHistory();
4. 修改入口文件index.js
import React from 'react';
import ReactDom from 'react-dom';
import history from 'utils/history';
import App from './App'; ReactDom.render(
<App history={history} />,
document.getElementById('app'),
);
其中App.js中配置页面路径
const HOCRoute = RouterFac(Route);
const App = ({ history }) => (
<Router history={history}>
<Switch>
<Route path="/" exact component={Home} />
<HOCRoute {...routes[]} exact component={page1} />
<HOCRoute {...routes[]} exact component={page2} />
<HOCRoute {...routes[103]} exact component={page3} />
</Switch> </Router> ); App.propTypes = { history: PropTypes.shape({}).isRequired }; export default App;
5. 按照配置的路径新建页面
文件目录如下:
-pages
--page1
--index.js
--index.less
--page2
--index.js
--index.less
--page3
--index.js
--index.less
./pages/page1/index.js内容为:
import React, { PureComponent } from 'react';
class Page1 extends PureComponent {
render() {
return <div>hello,I am page1</div>;
}
}
export default Page1;
6. 验证
在浏览器打开url: http://localhost:8080/page1

react学习(7)——路由配置的更多相关文章
- react中的路由配置踩坑记
react 路由配置中,如果根路由(/)匹配一个组件,另一个路由(/list)在进行匹配的时候也会匹配到根路由(/),即在 /list 页面展示的时候 / 页面总是展示在上方. 此时如果想进行严格匹配 ...
- react ant design路由配置
最初的时候,只使用了antd中的menu,header和footer都是自己写的组件,在写路由时,总是报如下错误: 相关的路由配置如下: 在网上查的说是组件未暴露出去或者是return 这一行必须有个 ...
- AntDesign(React)学习-5 路由及使用Layout布局
前言:学习目标实现点击登录按钮,直接进入后台布局页面,类似下面antd官网文档展示效果 ant.design访问 https://ant-design.gitee.io/components/menu ...
- Angular5学习笔记 路由配置
因为angular-cli脚手架的关系,所以配置路由可以通过命令行来创建路由文件 原本创建一个angular项目的命令是ng new 项目名,就可以了,但这样创建出来的项目是没有路由文件的. 如果需要 ...
- AntDesign(React)学习-1 创建环境
目录: AntDesign(React)学习-15 组件定义.connect.interface AntDesign(React)学习-14 使用UMI提供的antd模板 AntDesign(Reac ...
- Django学习之路由分发和反向解析
原 Django学习之路由分发和反向解析 2018年07月12日 14:04:55 huangql517 阅读数 519 1>路由分发 我们之前学习的路由配置都是在项目的全局控制文件(项目名称目 ...
- CCNA网络工程师学习进程(7)路由器的路由配置
前面一节已经介绍了路由器的端口配置,接着我们介绍路由器的路由配置:静态路由.默认路由和浮动路由的配置:动态路由协议的配置,包括RIP.IGRP.EIGRP和OSPF. (1)路由器的基 ...
- 使用create-react-app 快速构建 React 开发环境以及react-router 4.x路由配置
create-react-app 是来自于 Facebook,通过该命令我们无需配置就能快速构建 React 开发环境. create-react-app 自动创建的项目是基于 Webpack + E ...
- React路由配置
React路由简单配置 //入口文件index.js import React from 'react'; import ReactDom from 'react-dom'; import { Rou ...
- webpack 配置react脚手架(四):路由配置
1. 由于 react-router 是集成了 react-router-dom 和 react-router-native的一起的,所以这里要使用的是 react-router-dom, 2. 安装 ...
随机推荐
- [D3] Load and Inspect Data with D3 v4
You probably use a framework or standalone library to load data into your apps, but what if that’s o ...
- css3-8 内外边距中的注意要点有哪些
css3-8 内外边距中的注意要点有哪些 一.总结 一句话总结:padding,border都是外延的.margin会合并. 1.两元素样式都有margin:15px,他们中间的距离是15px还是30 ...
- How to use ftp in a shell script
转载How to use ftp in a shell script How to use ftp in a shell script Bruce EdigerBruce Ediger's home ...
- 【矩阵】概念的理解 —— span、基
span:全部列向量的线性组合构成的集合: span[a1,-,an]={y∈Rm|y=∑k=1nckak}=S 注:ak∈Rm,共 n 个列向量: 集合 S 可以有不同的一组基,但是基中向量的个数是 ...
- C 语言常见 API(fprintf、fputs、fprintf)
1. fprintf:输出到文件描述符对应的文件 stderr:错误输出也是一种特殊的文件描述符 #define FatalError(str) fprintf(stderr, "%s\n& ...
- 简洁常用权限系统的设计与实现(一):构造权限菜单树的N(N>=4)种方法
权限系统,Web开发常见标准子系统之一.结合自己的一些思考和实践,从本篇开始权限系统的设计与实现之路. 最近,重构了项目的权限菜单构造过程,向前端返回json格式的权限树. 这一篇,只是大致介绍下这个 ...
- SignalR+NAudio实现语音会话[WPF]
原文:SignalR+NAudio实现语音会话[WPF] 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/lordwish/article/detai ...
- 利用spingmvc及servlet实现对url的地址去除后缀,更改后缀为html
效果图 1.在web.xml中加上如下配置.其实就是利用servlet的目录过滤,这样所有带有news的地址都会被拦截 <!-- restfull风格约定,去除前台超链接访问的后缀 --> ...
- System.getProperty()获取系统的配置信息(系统变量)
原文地址:http://www.jsjtt.com/java/Javajichu/105.html 此处记录备用. 1. 通过System.getProperty()可以获取系统的配置信息,Syste ...
- No USB devices or running emulators detected”
每次重装系统之后,安装andorid studio后,使用真机调试代码,就会出现"No USB devices or running emulators detected"的错误, ...