react路由配置方式详解


Posted in Javascript onAugust 07, 2017

本文介绍了react路由配置,最近刚开始学,分享给大家,顺便给自己留个笔记。

react路由配置方式详解

包含了LInk跳转以及js触发跳转并传参。

这是项目的目录结构,主要的代码都在src目录下,src下面新建一个containers文件夹放我们的一些组件,router文件夹是配置路由用的。

按照顺序来写:detail文件夹下的代码

import React from 'react' 
 
class Detail extends React.Component { 
  render() { 
    return ( 
      <p>Detail,url参数:{this.props.params.id}</p> 
    ) 
  } 
} 
export default Detail 

home:

import React from 'react' 
import { Link } from 'react-router' 
 
class Home extends React.Component { 
  render() { 
    return ( 
      <div> 
        <p>Home</p> 
        <Link to="/list">to list</Link> 
      </div> 
    ) 
  } 
} 
 
export default Home

list:

import React from 'react' 
import { hashHistory } from 'react-router' 
 
class List extends React.Component { 
  render() { 
    const arr = [1, 2, 3] 
    return ( 
      <ul> 
        {arr.map((item, index) => { 
          return <li key={index} onClick={this.clickHandler.bind(this, item)}>js jump to {item}</li> 
        })} 
      </ul> 
    ) 
  } 
  clickHandler(value) { 
    hashHistory.push('/detail/' + value) 
  } 
} 
 
export default List

404yemian:

import React from 'react' 
 
class NotFound extends React.Component { 
  render() { 
    return ( 
      <p>404 NotFound</p> 
    ) 
  } 
} 
 
export default NotFound

在containers下面有一个app.jsx总入口文件:

import React from 'react' 
 
class App extends React.Component { 
  render() { 
    return ( 
      <div>{this.props.children}</div> 
    ) 
  } 
} 
 
export default App

router文件夹下的:

import React from 'react' 
import { Router, Route, IndexRoute } from 'react-router' 
 
import App from '../containers/App' 
import Home from '../containers/Home' 
import List from '../containers/List' 
import Detail from '../containers/Detail' 
import NotFound from '../containers/NotFound' 
 
class RouteMap extends React.Component { 
  updateHandle() { 
    console.log('每次router变化之后都会触发') 
  } 
  render() { 
    return ( 
       <Router history={this.props.history} onUpdate={this.updateHandle.bind(this)}> 
        <Route path='/' component={App}> 
          <IndexRoute component={Home}/> 
          <Route path='list' component={List}/> 
          <Route path='detail/:id' component={Detail}/> 
          <Route path="*" component={NotFound}/> 
        </Route> 
      </Router> 
    ) 
  } 
} 
 
export default RouteMap

最终最外层的index.js:

import React from 'react' 
import { render } from 'react-dom' 
import { hashHistory } from 'react-router' 
 
import RouteMap from './src/router/routeMap' 
 
render( 
  <RouteMap history={hashHistory}/>, 
  document.getElementById('App') 
)

使用的router版本是^2.8.1,如果下载的是4.0以上的版本,那么写法就和现在的几乎是完全不一样,他做了很大的改动,配置的时候注意router的版本号。

项目地址https://github.com/wineSu/myReact/tree/master/src/containers

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
表单元素与非表单元素刷新区别详细解析
Nov 06 Javascript
Node调试工具JSHint的安装及配置教程
May 27 Javascript
被遗忘的javascript的slice() 方法
Apr 20 Javascript
JS如何实现文本框随文本的长度而增长
Jul 30 Javascript
浅析AngularJS中的指令
Mar 20 Javascript
javascript 利用arguments实现可变长参数
Nov 21 Javascript
Angularjs处理页面闪烁的解决方法
Mar 09 Javascript
angularjs+bootstrap实现自定义分页的实例代码
Jun 19 Javascript
JS实现分页浏览横向图片(类轮播)实例代码
Nov 06 Javascript
JavaScript中工厂函数与构造函数示例详解
May 06 Javascript
webpack 处理CSS资源的实现
Sep 27 Javascript
vue 使用饿了么UI仿写teambition的筛选功能
Mar 01 Vue.js
深入理解vue.js中$watch的oldvalue与newValue
Aug 07 #Javascript
JavaScript调试之console.log调试的一个小技巧分享
Aug 07 #Javascript
react native仿微信PopupWindow效果的实例代码
Aug 07 #Javascript
jquery+css实现简单的图片轮播效果
Aug 07 #jQuery
bootstrap table表格客户端分页实例
Aug 07 #Javascript
基于JS递归函数细化认识及实用实例(推荐)
Aug 07 #Javascript
react native实现往服务器上传网络图片的实例
Aug 07 #Javascript
You might like
SONY SRF-22W(33W)的电路分析和维修案例
2021/03/02 无线电
用PHP读取RSS feed的代码
2008/08/01 PHP
PHP类中Static方法效率测试代码
2010/10/17 PHP
PHP统计二维数组元素个数的方法
2013/11/12 PHP
CI(CodeIgniter)框架中URL特殊字符处理与SQL注入隐患分析
2019/02/28 PHP
jQuery代码实现发展历程时间轴特效
2015/07/30 Javascript
js实现显示当前状态的导航效果代码
2015/08/28 Javascript
js智能获取浏览器版本UA信息的方法
2016/08/08 Javascript
nodejs中sleep功能实现暂停几秒的方法
2017/07/12 NodeJs
webpack之引入图片的实现及问题
2018/10/08 Javascript
JS无限级导航菜单实现方法
2019/01/05 Javascript
Vue+webpack实现懒加载过程解析
2020/02/17 Javascript
初步理解Python进程的信号通讯
2015/04/09 Python
Python自动调用IE打开某个网站的方法
2015/06/03 Python
Python数据可视化编程通过Matplotlib创建散点图代码示例
2017/12/09 Python
对Python3中的print函数以及与python2的对比分析
2018/05/02 Python
Python3实现将本地JSON大数据文件写入MySQL数据库的方法
2018/06/13 Python
查看TensorFlow checkpoint文件中的变量名和对应值方法
2018/06/14 Python
python如何获取列表中每个元素的下标位置
2019/07/01 Python
tensorflow实现对张量数据的切片操作方式
2020/01/19 Python
基于keras中的回调函数用法说明
2020/06/17 Python
Python钉钉报警及Zabbix集成钉钉报警的示例代码
2020/08/17 Python
python中delattr删除对象方法的代码分析
2020/12/15 Python
python中常用的数据结构介绍
2021/01/12 Python
python切片作为占位符使用实例讲解
2021/02/17 Python
eBay德国站:eBay.de
2017/09/14 全球购物
Anthropologie英国:美国家喻户晓的休闲服装和家居产品品牌
2018/12/05 全球购物
英国礼品和生活方式品牌:Treat Republic
2020/11/21 全球购物
什么是Connection-oriented Protocol/Connectionless Protocol面向连接的协议/无连接协议
2012/09/06 面试题
是否可以从一个static方法内部发出对非static方法的调用?
2014/08/18 面试题
毕业自我鉴定范文
2013/11/06 职场文书
经济学博士求职自荐信范文
2013/11/23 职场文书
2014年人民调解工作总结
2014/12/08 职场文书
2019经典广告词集锦!
2019/07/02 职场文书
nginx内存池源码解析
2021/11/20 Servers
排查MySQL生产环境索引没有效果
2022/04/11 MySQL