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 相关文章推荐
做网页的一些技巧
Feb 01 Javascript
实例讲解JQuery中this和$(this)区别
Dec 08 Javascript
浅谈JavaScript中Date(日期对象),Math对象
Feb 05 Javascript
javascript自定义右键弹出菜单实现方法
May 25 Javascript
javascript日期处理函数,性能优化批处理
Sep 06 Javascript
jQuery 获取遍历获取table中每一个tr中的第一个td的方法
Oct 05 Javascript
vue2组件实现懒加载浅析
Mar 29 Javascript
轻松理解vue的双向数据绑定问题
Oct 30 Javascript
微信小程序 搜索框组件代码实例
Sep 06 Javascript
微信小程序request请求封装,验签代码实例
Dec 04 Javascript
Vue实现点击箭头上下移动效果
Jun 11 Javascript
详解vue之自行实现派发与广播(dispatch与broadcast)
Jan 19 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
利用static实现表格的颜色隔行显示的代码
2007/09/02 PHP
php创建sprite
2014/02/11 PHP
PHP中怎样防止SQL注入分析
2014/10/23 PHP
学习php设计模式 php实现模板方法模式
2015/12/08 PHP
Laravel如何创建服务器提供者实例代码
2019/04/15 PHP
Node.js环境下JavaScript实现单链表与双链表结构
2016/06/12 Javascript
vuejs动态组件给子组件传递数据的方法详解
2016/09/09 Javascript
Angularjs+bootstrap+table多选(全选)支持单击行选中实现编辑、删除功能
2017/03/27 Javascript
JS中type=&quot;button&quot;和type=&quot;submit&quot;的区别
2017/07/04 Javascript
webpack中的热刷新与热加载的区别
2018/04/09 Javascript
手动用webpack搭建第一个ReactApp的示例
2018/04/11 Javascript
jquery实现的简单轮播图功能【适合新手】
2018/08/17 jQuery
webpack多入口多出口的实现方法
2018/08/17 Javascript
从0到1搭建element后台框架优化篇(打包优化)
2019/05/12 Javascript
JavaScript canvas实现跟随鼠标事件
2020/02/10 Javascript
Vue中fragment.js使用方法小结
2020/02/17 Javascript
JavaScript实现原型封装轮播图
2020/12/27 Javascript
python django集成cas验证系统
2014/07/14 Python
Django的URLconf中使用缺省视图参数的方法
2015/07/18 Python
Python实现抓取网页生成Excel文件的方法示例
2017/08/05 Python
Redis使用watch完成秒杀抢购功能的代码
2018/05/07 Python
解决tensorflow模型参数保存和加载的问题
2018/07/26 Python
对Python生成汉字字库文字,以及转换为文字图片的实例详解
2019/01/29 Python
对python周期性定时器的示例详解
2019/02/19 Python
django框架创建应用操作示例
2019/09/26 Python
python自动分箱,计算woe,iv的实例代码
2019/11/22 Python
Python基础之列表常见操作经典实例详解
2020/02/26 Python
TensorFlow实现批量归一化操作的示例
2020/04/22 Python
一个非常简单好用的Python图形界面库(PysimpleGUI)
2020/12/28 Python
2014五一国际劳动节活动总结范文
2014/04/14 职场文书
2015年求职自荐信范文
2015/03/04 职场文书
2015年预备党员自我评价
2015/03/04 职场文书
工厂门卫岗位职责
2015/04/13 职场文书
免职通知
2015/04/23 职场文书
2015年庆祝国庆节66周年演讲稿
2015/07/30 职场文书
MSSQL基本语法操作
2022/04/11 SQL Server