初步学习React Router 4.0
React Router 4.0 是react官方推荐的路由库。4是已经正式发布的最新版本。
初始化项目启动之后:

npm run eject 弹出配置文件。自定义配置webpack
查看下package.json中是不是有react-router-dom,没有安装即可
注意:安装最新版本的react 命令行:npm install --save react@next react-dom@next
@next即安装最新的版本
"react-router-dom": "^4.2.2"

如下图配置路由 引入 BrowserRouter ,Route ,Switch
BrowserRouter 包裹整个应用、整个应用只有一个
里面只有一个子节点。多个要用div包裹
注意:多个路由 要加个参数 switch 只渲染命匹配的第一个组件
exact 实现精确匹配(匹配到第一个就不往下继续匹配)

import React from 'react';
import ReactDOM from 'react-dom';
import { BrowserRouter ,Route ,Switch } from 'react-router-dom';
import './index.css';
import App from './App';
import registerServiceWorker from './registerServiceWorker'; ReactDOM.render(
<div>
<BrowserRouter>
<Switch>
<Route path='/' component={App} exact />
</Switch>
</BrowserRouter>
</div>
, document.getElementById('root'));
registerServiceWorker();

import React from 'react';
import ReactDOM from 'react-dom';
import { BrowserRouter ,Route ,Switch } from 'react-router-dom';
import './index.css';
import App from './App';
import Newsdetail from './containers/newsdetail/index';
import Newslist from './containers/newslist/index';
import registerServiceWorker from './registerServiceWorker'; ReactDOM.render(
<div>
<BrowserRouter>
<Switch>
<Route path='/' component={App} exact />
<Route path='/newsdetail' component={ Newsdetail }/>
<Route path='/newslist' component={ Newslist }/>
</Switch>
</BrowserRouter>
</div>
, document.getElementById('root'));
registerServiceWorker();
第一种方式:
this.props.history.push

第二种方式 link的方式。相当于a跳转
<Link to='/newslist'></Link>

3 子组件中拥有路由的方法:



得到的是undefined 在子组件中没有路由。如果想拥有路由
先安装:babel-plugin-transform-decorators-legacy
配置文件中如下;

页面中使用@





import React from 'react';
import { withRouter } from 'react-router-dom';
@withRouter
class Subnews extends React.Component{
constructor(props){
super(props);
this.clickhandler=this.clickhandler.bind(this);
}
clickhandler(){
console.log(this.props.history);
this.props.history.push('/');
}
render() {
return (
<div>
这是Subnews
<button onClick={this.clickhandler}>点击跳转到首页</button>
</div>
);
}
}
export default Subnews;
4:URL参数。可以用冒号标识参数




在newpage中获取参数:
这是参数:{this.props.match.params.id}

初步学习React Router 4.0的更多相关文章
- React Router V4.0学习笔记
最近在学习React Router,但是网站的教程多半还是3.X版本之前的,所以我只能在GitHub上找到React Router的官方文档在读.后来总结了一下,包括学习经验以及V3.X与V4.X的差 ...
- react router 4.0以上的路由应用
thead>tr>th{padding:8px;line-height:1.4285714;border-top:1px solid #ddd}.table>thead>tr& ...
- React Router 4.0 实现路由守卫
在使用 Vue 或者 Angular 的时候,框架提供了路由守卫功能,用来在进入某个路有前进行一些校验工作,如果校验失败,就跳转到 404 或者登陆页面,比如 Vue 中的 beforeEnter 函 ...
- React Router 4.0 + webpack 实现组件按需加载
网上关于React Router 4.0的按需加载文章有很多,大致的思路都一样,但是其实具体实现起来却要根据自己的实际情况来定,这里主要介绍一下我的实现方式. 主要方式是通过Route组件的rende ...
- React Router 4.0 体验
React Router 4.0 (以下简称 RR4) 已经正式发布,它遵循React的设计理念,即万物皆组件.所以 RR4 只是一堆 提供了导航功能的组件(还有若干对象和方法),具有声明式(声明式编 ...
- React Router 4.0 基本使用
路由的概念,起初来源于服务端,就是当浏览器访问一个网站的不同页面时,服务端能够正确的返回页面的内容.当访问首页时,它能返回首页的内容,访问关于我们页面时,返回关于我们的内容.可以看到路由就是一种控制和 ...
- React Router 4.0 ---- 嵌套路由和动态路由
嵌套路由,从广义上来说,分为两种情况:一种是每个路由到的组件都有共有的内容,这时把共有的内容抽离成一个组件,变化的内容也是一个组件,两种组件组合嵌套,形成一个新的组件.另一种是子路由,路由到的组件内部 ...
- React Router 4.0中文快速入门
import React from 'react' import { BrowserRouter as Router, Route, Link } from 'react-router-dom' co ...
- 【共享单车】—— React后台管理系统开发手记:Router 4.0路由实战演练
前言:以下内容基于React全家桶+AntD实战课程的学习实践过程记录.最终成果github地址:https://github.com/66Web/react-antd-manager,欢迎star. ...
随机推荐
- HIbernate学习笔记2 之 主键生成方式
一.hibernate主键生成方式: 1.常用方式:mysql:自增长生成主键(identity) <generator class="identity"> </ ...
- eclipse 配置jsp
1.安装jdk和jre 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html ...
- Django基础之form组件
Form介绍 我们之前在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来. 与此同时我们在好多场景下都需要对用户的输入做校验,比如校验用户是否 ...
- Python中的PIL
转自:http://blog.csdn.net/yockie/article/details/8498301 介绍 把Python的基础知识学习后,尝试一下如何安装.加载.使用非标准库,选择了图像处理 ...
- linux系统使用过程遇到的bug
使用windows与ubuntu双系统,重装windows系统后需要修复ubuntu grub reference ubuntu系统中挂载的windows硬盘点不开 需要重新挂载 reference ...
- SEO如何写好文章标题
近一半网民只看标题不点内容,许多网站有个标题和内容摘要,而这个摘要基本概括了整篇新闻的大致内容,所以的互联网信息泛滥的今天,看标题看摘要成了最快阅读新闻资讯的一种有效方式. 如何写好标题?我一直愁这事 ...
- 【机器学习】k-近邻算法应用之手写数字识别
上篇文章简要介绍了k-近邻算法的算法原理以及一个简单的例子,今天再向大家介绍一个简单的应用,因为使用的原理大体差不多,就没有没有过多的解释. 为了具有说明性,把手写数字的图像转换为txt文件,如下图所 ...
- java程序中如何为一个while(true)循环计时,超过一定时间比如10个小时就退出循环?
public void execute(int hour){ long t1 = System.currentTimeMillis(); while(true){ long t2 = System.c ...
- 动态创建timer
Private timer:Ttimer;procedure MyTimerDo(Sender:Tobject);procedure create ; timer:=TtIMER.Create; ...
- hdu 4135 Co-prime (素数打表+容斥原理)
题目链接 题意:问从A到B中与N互素的个数. 题解: 利用容斥原理:先求出与n互为素数的个数. 可以先将 n 进行素因子分解,然后用区间 x 除以 素因子,就得到了与 n 的 约数是那个素因子的个数, ...