reactJS -- 14 Router 概念
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 概念相关推荐
- reactjs路由router的基本使用
- java线上培训机构排名前十,重要概念一网打尽!
02 JVM 线程 JVM内存区域 JVM运行时内存 垃圾回收与算法 JAVA四种引用类型 GC分代收集算法 VS 分区收集算法 GC垃圾收集器 JAVA IO/NIO JVM类加载器 03 JAVA ...
- 苹果 iPhone 14 Pro/Max 手机最新细节曝光,终于盼来 USB-C 接口
北京时间 11 月 19 日消息,据国外媒体报道,有关 iPhone 14 系列的消息已经被曝出,但短时间内其并不会发布.有消息显示,苹果或将为 iPhone 带来一些新的东西,这其中就包括人们期待多 ...
- python里find是什么函数_Python find函数用法和概念
原博文 2018-11-21 14:31 − 概念: Python find() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范 ...
- 新概念英语第二册课文电子版_新概念英语第二册音频+视频讲解:Lesson 24
教学视频 Lesson 24 It could be worse 不幸中之万幸 First listen and then answer the question.听录音,然后回答以下问题.Had t ...
- matlab对于处理数字图像的优点,数字图像处理及matlab实现知识点总结1-4
数字图像处理及matlab实现知识点总结1-4 数字图像处理及matlab实现知识点总结1-4 图像概念: 图:是物体透射或反射光的分布,客观存在 像:是人的视觉系统对图的接受在大脑中形成的印象或反映 ...
- React.js 入门与实战之开发适配PC端及移动端新闻头条平台课程上线了
原文发表于我的技术博客 我在慕课网的「React.js 入门与实战之开发适配PC端及移动端新闻头条平台」课程已经上线了,文章中是目前整个课程的大纲,以后此课程还会保持持续更新,此大纲文档也会保持更新, ...
- node医保药品集中采购平台-采购系统的设计与实现 毕业设计-附源码271542
Node.js医保药品集中采购系统 摘要 为"解决看病贵,吃药贵"的问题,找出药品流通环节,地区供价差异,顺加作价机制不合理,合同不规范执行,药品市场缺乏竞争等问题原因.完善药品集 ...
- (附源码)node医保药品集中采购平台-采购系统的设计与实现 毕业设计271542
Node.js医保药品集中采购系统 摘要 为"解决看病贵,吃药贵"的问题,找出药品流通环节,地区供价差异,顺加作价机制不合理,合同不规范执行,药品市场缺乏竞争等问题原因.完善药品集 ...
- [转]马云在《赢在中国》对创业者的经典点评
1 这个世界不是因为你能做什么,而是你该做什么. 2 创意是企业运营中一个很重要的一环,但它只是一环,不是所有,所以要把每项工作落实到实处. 3 建立自我.追求忘我. 4 做一份工作,做一份喜欢的工作 ...
最新文章
- 电子科技大学技术交流报道
- 性能翻倍 IBM借DS3500拓中低端存储市场
- Vue实现仿音乐播放器8-实现热门榜单效果
- Spark 安装配置简单测试
- mybatis入门案例
- php 类 private,有关php类的private属性继承问题详解
- html烟火源码,HTML5:烟火
- SpringBoot依赖管理,版本仲裁
- 知识付费的痛点:如何让用户持续学习?
- Java程序员的MacBookPro(14寸M1)配置备忘录
- Python笔记:集合的概念和使用
- IP定位如何揪出SEM、百度竞价的“头号天敌——恶意点击”
- 产品驱动程序一览表(ThinkPad X61)
- matplotlib 柱状图画误差棒
- 漫谈TCP High Speed与TCP Africa(TCP China)
- Python 多个视频拼接成一个视频工具(附代码) | Python工具
- POI 自定义颜色 RGB
- MFC 多个RadioButton设为一组 vs2013
- 【简单】Divisor Summation
- 163电子邮箱,注册登陆及使用详细揭秘
热门文章
- Atitit. 单点登录sso 的解决方案 总结
- paip.slap工具与于64位win7与JDBC的性能对比
- 2C的世界: 用户的嘴,骗人的鬼
- 刘永行:领导者的得与失
- 投资中的黑科技知多少?
- Julia : 关于Atom中的Julia代码排版
- 机器学习笔记(十一):优化梯度公式 | 凌云时刻
- 【图像去噪】基于matlab GUI均值+中值图像去噪【含Matlab源码 1815期】
- 【数字信号处理】基于matlab数字信号离散序列短时傅里叶变换【含Matlab源码 1545期】
- 【手写字母识别】基于matlab GUI模板匹配手写大写字母识别【含Matlab源码 115期】