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 相关文章推荐
javascript检查日期格式的函数[比较全]
Oct 17 Javascript
验证码按回车不变解决方法
Mar 29 Javascript
jquery分页插件AmSetPager(自写)
Apr 15 Javascript
js读取配置文件自写
Feb 11 Javascript
jQuery学习笔记之 Ajax操作篇(三) - 过程处理
Jun 23 Javascript
Javascript实现颜色rgb与16进制转换的方法
Apr 18 Javascript
Ajax 加载数据 练习代码
Jan 05 Javascript
jQuery实现基本动画效果的方法详解
Sep 06 jQuery
在Vue中用canvas实现二维码和图片合成海报的方法
Jun 10 Javascript
JS中超越现实的匿名函数用法实例分析
Jun 21 Javascript
vue-cli创建的项目中的gitHooks原理解析
Feb 14 Javascript
typescript编写微信小程序创建项目的方法
Jan 29 Javascript
深入理解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
PHP使用PHPexcel导入导出数据的方法
2015/11/14 PHP
PHP清除缓存的几种方法总结
2017/09/12 PHP
php面向对象程序设计中self与static的区别分析
2019/05/21 PHP
基于MooTools的很有创意的滚动条时钟动画
2010/11/14 Javascript
Jquery 数据选择插件Pickerbox使用介绍
2012/08/24 Javascript
Javascript中的delete介绍
2012/09/02 Javascript
JavaScript高级程序设计(第3版)学习笔记9 js函数(下)
2012/10/11 Javascript
javascript中cookie对象用法实例分析
2015/01/30 Javascript
JS文字球状放大效果代码分享
2015/08/19 Javascript
JS基于Mootools实现的个性菜单效果代码
2015/10/21 Javascript
浅析创建javascript对象的方法
2016/05/13 Javascript
浅谈jQuery 选择器和dom操作
2016/06/07 Javascript
在Mac OS上安装使用Node.js的项目自动化构建工具Gulp
2016/06/18 Javascript
js实现百度搜索提示框
2017/02/05 Javascript
原生JS实现ajax与ajax的跨域请求实例
2017/12/01 Javascript
vue 引入公共css文件的简单方法(推荐)
2018/01/20 Javascript
vue中keep-alive,include的缓存问题
2019/11/26 Javascript
javascript将16进制的字符串转换为10进制整数hex
2020/03/05 Javascript
[00:55]2015国际邀请赛中国区预选赛5月23日——28日约战上海
2015/05/25 DOTA
python通过邮件服务器端口发送邮件的方法
2015/04/30 Python
Python request设置HTTPS代理代码解析
2018/02/12 Python
Sanic框架配置操作分析
2018/07/17 Python
python中使用ctypes调用so传参设置遇到的问题及解决方法
2019/06/19 Python
python使用tomorrow实现多线程的例子
2019/07/20 Python
使用python3批量下载rbsp数据的示例代码
2019/12/20 Python
tensorboard实现同时显示训练曲线和测试曲线
2020/01/21 Python
Aveda美国官网:天然护发产品、洗发水、护发素和沙龙
2016/12/09 全球购物
意大利奢华内衣制造商:Cosabella
2017/08/29 全球购物
演讲稿开场白
2014/01/13 职场文书
仓库组长岗位职责
2014/01/29 职场文书
勤奋学习演讲稿
2014/05/10 职场文书
党员学习群众路线教育实践活动对照检查材料
2014/09/23 职场文书
2014大四本科生自我鉴定总结
2014/10/04 职场文书
大学生村官个人总结
2015/02/15 职场文书
文艺晚会开场白
2015/05/29 职场文书
2019中小学生安全过暑期倡议书
2019/06/24 职场文书