2019独角兽企业重金招聘Python工程师标准>>>

官方网站 :https://react-guide.github.io/react-router-cn/

页面做的有层级

一.安装Router

1.首先通过 npm 安装:(最新版)

$ npm install --save react-router

1.安装的版本就是 React Router 2 的版本,所有的使用就会和课程一样了。

npm install react-router@2.8.1

二.编写router.js

import React from 'react';
import ReactDOM from 'react-dom';
import Index from './index';
import {Router,Router,hashHistory} from 'react-router'; export default class Root extends React.Component{render(){return ();}
}

三. 修改以router为项目入口

注意:在· Route 中引入·组件都要 export default

需要注意 Route 绑定的 component 中的 class 有没有添加 export default

import React from 'react';
import ReactDOM from 'react-dom';
import index from './index';
import ComponentList from './components/list';
import {Router,Route,hashHistory} from 'react-router';export default class Root extends React.Component{render(){return (//这里替换了之前的Index 变成了程序的入口<Router history = {hashHistory}><Route component={index} path="/" /><Route component={ComponentList} path="list" /></Router>);}
}ReactDOM.render(<Root/>, document.getElementById('example'));

四.创建list.js

import React from 'react';
export default class ComponentList extends React.Component{render(){return {<div><h2>这里是列表页面</h2></div>};};}

五.将list.js 引入router.js

import ComponentList from './components/list.js';

六.修改package.json

  "name": "003","version": "1.0.0","description": "","main": "router.js",

七.修改 webpack.config.js

修改入口文件。

  entry: "./src/js/router.js",

八. 定义嵌套页面

1.创建detail.js

import React from 'react';
export default class ComponentList extends React.Component{render(){return (<div><h2>这里是嵌套在首页中的详细页面</h2></div>);};}

2. 修改 router.js

import React from 'react';
import ReactDOM from 'react-dom';
import index from './index';
import ComponentList from './components/list';
import ComponentDetail from './components/detail.js';
import {Router,Route,hashHistory} from 'react-router';export default class Root extends React.Component{render(){return (//这里替换了之前的Index 变成了程序的入口<Router history = {hashHistory}><Route component={index} path="/"><Route component={ComponentDetail} path="details"></Route></Route><Route component={ComponentList} path="list"></Route></Router>);}
}ReactDOM.render(<Root/>, document.getElementById('example'));

3.修改index.js

list是一个单独的页面,details  是嵌套在index里面的页面,为了将detail页面嵌套在index里面,在index页面中添加一个 idv ,在内添加 {this.props.children}

添加

this.props 对象的属性与组件的属性一一对应,但是有一个例外,就是 this.props.children 属性。它表示组件的所有子节点

<div>{this.props.children}
</div>

访问details后发现details 嵌套在 index页面中

九 . 跳转

有了router 后添加链接进行跳转。

在header 中添加链接

import {Link} from 'react-router'
  return (<header style={styleComponentHeader.header} className="smallFountSize"><h1>这里是头部</h1><ul><li><Link to={'/'}>首页</Link></li><li><Link to={'/details'}>嵌套的详情页面</Link></li><li><Link to={'/list'}>列表页面</Link></li></ul></header>)

十. Router参数的传递

1.点击链接向list页面传入参数

(1)在router里面对list 参数进行定义

  <Route component={ComponentList} path="list/:id"></Route>
// /:参数名

(2)在header页面中传入参数

<ul><li><Link to={'/'}>首页</Link></li><li><Link to={'/details'}>嵌套的详情页面</Link></li><li><Link to={'/list/1234'}>列表页面</Link></li>
</ul>

(3)在list.js界面中引用传入的参数

import React from 'react';
export default class ComponentList extends React.Component{render(){return (<div><h2>这里是列表页面 Id : {this.props.params.id}</h2></div>);};}

传入多个参数:

/list/1234/desc/...

或者通过 state

转载于:https://my.oschina.net/u/2991733/blog/1377301

reactJS -- 14 Router 概念相关推荐

  1. reactjs路由router的基本使用

  2. java线上培训机构排名前十,重要概念一网打尽!

    02 JVM 线程 JVM内存区域 JVM运行时内存 垃圾回收与算法 JAVA四种引用类型 GC分代收集算法 VS 分区收集算法 GC垃圾收集器 JAVA IO/NIO JVM类加载器 03 JAVA ...

  3. 苹果 iPhone 14 Pro/Max 手机最新细节曝光,终于盼来 USB-C 接口

    北京时间 11 月 19 日消息,据国外媒体报道,有关 iPhone 14 系列的消息已经被曝出,但短时间内其并不会发布.有消息显示,苹果或将为 iPhone 带来一些新的东西,这其中就包括人们期待多 ...

  4. python里find是什么函数_Python find函数用法和概念

    原博文 2018-11-21 14:31 − 概念: Python find() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范 ...

  5. 新概念英语第二册课文电子版_新概念英语第二册音频+视频讲解:Lesson 24

    教学视频 Lesson 24 It could be worse 不幸中之万幸 First listen and then answer the question.听录音,然后回答以下问题.Had t ...

  6. matlab对于处理数字图像的优点,数字图像处理及matlab实现知识点总结1-4

    数字图像处理及matlab实现知识点总结1-4 数字图像处理及matlab实现知识点总结1-4 图像概念: 图:是物体透射或反射光的分布,客观存在 像:是人的视觉系统对图的接受在大脑中形成的印象或反映 ...

  7. React.js 入门与实战之开发适配PC端及移动端新闻头条平台课程上线了

    原文发表于我的技术博客 我在慕课网的「React.js 入门与实战之开发适配PC端及移动端新闻头条平台」课程已经上线了,文章中是目前整个课程的大纲,以后此课程还会保持持续更新,此大纲文档也会保持更新, ...

  8. node医保药品集中采购平台-采购系统的设计与实现 毕业设计-附源码271542

    Node.js医保药品集中采购系统 摘要 为"解决看病贵,吃药贵"的问题,找出药品流通环节,地区供价差异,顺加作价机制不合理,合同不规范执行,药品市场缺乏竞争等问题原因.完善药品集 ...

  9. (附源码)node医保药品集中采购平台-采购系统的设计与实现 毕业设计271542

    Node.js医保药品集中采购系统 摘要 为"解决看病贵,吃药贵"的问题,找出药品流通环节,地区供价差异,顺加作价机制不合理,合同不规范执行,药品市场缺乏竞争等问题原因.完善药品集 ...

  10. [转]马云在《赢在中国》对创业者的经典点评

    1 这个世界不是因为你能做什么,而是你该做什么. 2 创意是企业运营中一个很重要的一环,但它只是一环,不是所有,所以要把每项工作落实到实处. 3 建立自我.追求忘我. 4 做一份工作,做一份喜欢的工作 ...

最新文章

  1. 电子科技大学技术交流报道
  2. 性能翻倍 IBM借DS3500拓中低端存储市场
  3. Vue实现仿音乐播放器8-实现热门榜单效果
  4. Spark 安装配置简单测试
  5. mybatis入门案例
  6. php 类 private,有关php类的private属性继承问题详解
  7. html烟火源码,HTML5:烟火
  8. SpringBoot依赖管理,版本仲裁
  9. 知识付费的痛点:如何让用户持续学习?
  10. Java程序员的MacBookPro(14寸M1)配置备忘录
  11. Python笔记:集合的概念和使用
  12. IP定位如何揪出SEM、百度竞价的“头号天敌——恶意点击”
  13. 产品驱动程序一览表(ThinkPad X61)
  14. matplotlib 柱状图画误差棒
  15. 漫谈TCP High Speed与TCP Africa(TCP China)
  16. Python 多个视频拼接成一个视频工具(附代码) | Python工具
  17. POI 自定义颜色 RGB
  18. MFC 多个RadioButton设为一组 vs2013
  19. 【简单】Divisor Summation
  20. 163电子邮箱,注册登陆及使用详细揭秘

热门文章

  1. Atitit. 单点登录sso 的解决方案 总结
  2. paip.slap工具与于64位win7与JDBC的性能对比
  3. 2C的世界: 用户的嘴,骗人的鬼
  4. 刘永行:领导者的得与失
  5. 投资中的黑科技知多少?
  6. Julia : 关于Atom中的Julia代码排版
  7. 机器学习笔记(十一):优化梯度公式 | 凌云时刻
  8. 【图像去噪】基于matlab GUI均值+中值图像去噪【含Matlab源码 1815期】
  9. 【数字信号处理】基于matlab数字信号离散序列短时傅里叶变换【含Matlab源码 1545期】
  10. 【手写字母识别】基于matlab GUI模板匹配手写大写字母识别【含Matlab源码 115期】