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 相关文章推荐
Extjs 4.x 得到form CheckBox 复选框的值
May 04 Javascript
jQuery+ajax实现鼠标单击修改内容的方法
Jun 27 Javascript
JavaScript不使用prototype和new实现继承机制
Dec 29 Javascript
在AngularJS应用中实现一些动画效果的代码
Jun 18 Javascript
详解node中创建服务进程
May 09 Javascript
浅谈angular2路由预加载策略
Oct 04 Javascript
angular1配合gulp和bower的使用教程
Jan 19 Javascript
Vue单页面应用保证F5强刷不清空数据的解决方案
Jan 31 Javascript
vue中filters 传入两个参数 / 使用两个filters的实现方法
Jul 15 Javascript
jquery将json转为数据字典的实例代码
Oct 11 jQuery
微信小程序图片右边加两行文字的代码
Apr 23 Javascript
JavaScript 正则应用详解【模式、欲查、反向引用等】
May 13 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 函数执行效率的小比较
2010/10/17 PHP
解析PHP中的unset究竟会不会释放内存
2013/07/18 PHP
PHP采用curl模仿用户登陆新浪微博发微博的方法
2014/11/07 PHP
PHP版本的选择5.2.17 5.3.27 5.3.28 5.4 5.5兼容性问题分析
2016/04/04 PHP
PHP安全下载文件的方法
2016/04/07 PHP
PHP回调函数与匿名函数实例详解
2017/08/16 PHP
java解析json方法总结
2019/05/16 PHP
让iframe框架网页在任何浏览器下自动伸缩
2006/08/18 Javascript
ext form 表单提交数据的方法小结
2008/08/08 Javascript
JavaScript栏目列表隐藏/显示简单实现
2013/04/03 Javascript
JS实现很实用的对联广告代码(可自适应高度)
2015/09/18 Javascript
实例讲解jquery中mouseleave和mouseout的区别
2016/02/17 Javascript
详解vue过滤器在v2.0版本用法
2017/06/01 Javascript
详解原生js实现offset方法
2017/06/15 Javascript
React-Native实现ListView组件之上拉刷新实例(iOS和Android通用)
2017/07/11 Javascript
浅谈FastClick 填坑及源码解析
2018/03/02 Javascript
layui实现点击按钮给table添加一行
2018/08/10 Javascript
vue移动端使用appClound拉起支付宝支付的实现方法
2019/11/21 Javascript
解决iview table组件里的 固定列 表格不自适应的问题
2020/11/13 Javascript
[04:29]2014DOTA2国际邀请赛 主赛事第三日TOPPLAY
2014/07/21 DOTA
[01:10]DOTA2英雄背景故事第四期之混沌法则混沌骑士
2020/07/16 DOTA
浅谈python多线程和队列管理shell程序
2015/08/04 Python
Windows10下 python3.7 安装 facenet的教程
2019/09/10 Python
详解使用Python下载文件的几种方法
2019/10/13 Python
Python requests HTTP验证登录实现流程
2020/11/05 Python
Python中的流程控制详解
2021/02/18 Python
将HTML5 Canvas的内容保存为图片借助toDataURL实现
2013/05/20 HTML / CSS
蔻驰美国官网:COACH美国
2016/08/18 全球购物
KIKO美国官网:意大利的平价彩妆品牌
2017/05/16 全球购物
Hammitt官网:设计师手袋
2020/05/23 全球购物
对公司合理化的建议书
2014/03/12 职场文书
人力资源管理系自荐信
2014/05/31 职场文书
企业授权委托书范本
2014/09/22 职场文书
中学生勤俭节约倡议书
2015/04/29 职场文书
pytorch损失反向传播后梯度为none的问题
2021/05/12 Python
Python使用BeautifulSoup4修改网页内容
2022/05/20 Python