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的parseInt 进制问题
May 07 Javascript
File, FileReader 和 Ajax 文件上传实例分析(php)
Apr 27 Javascript
javascript在myeclipse中报错的解决方法
Oct 29 Javascript
浮动的div自适应居中显示的js代码
Dec 23 Javascript
深入学习jQuery Validate表单验证(二)
Jan 18 Javascript
jQuery+PHP+MySQL实现无限级联下拉框效果
Feb 19 Javascript
JS实现的自定义水平滚动字体插件完整实例
Jun 17 Javascript
vue的props实现子组件随父组件一起变化
Oct 27 Javascript
Javascript计算二维数组重复值示例代码
Dec 18 Javascript
详解Vue SSR( Vue2 + Koa2 + Webpack4)配置指南
Nov 13 Javascript
jQuery实现每日秒杀商品倒计时功能
Sep 06 jQuery
Javascript中的解构赋值语法详解
Apr 02 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/02/08 PHP
php smarty模板引擎的6个小技巧
2014/04/24 PHP
php实现在服务器上创建目录的方法
2015/03/16 PHP
Yii框架实现的验证码、登录及退出功能示例
2017/05/20 PHP
JavaScript中的eval()函数详解
2013/08/22 Javascript
js算法中的排序、数组去重详细概述
2013/10/14 Javascript
2种jQuery 实现刮刮卡效果
2015/02/01 Javascript
详解Js模板引擎(TrimPath)
2016/11/22 Javascript
JS触摸事件、手势事件详解
2017/05/04 Javascript
关于javascript获取内联样式与嵌入式样式的实例
2017/06/01 Javascript
JavaScript ES6中const、let与var的对比详解
2017/06/18 Javascript
详解vue模拟加载更多功能(数据追加)
2017/06/23 Javascript
JS实现颜色的10进制转化成rgba格式的方法
2017/09/04 Javascript
详解JS判断页面是在手机端还是在PC端打开的方法
2019/04/26 Javascript
微信小程序点击图片实现长按预览、保存、识别带参数二维码、转发等功能
2019/07/20 Javascript
JQuery实现ul中添加LI和删除指定的Li元素功能完整示例
2019/10/16 jQuery
element 中 el-menu 组件的无限极循环思路代码详解
2020/04/26 Javascript
[03:42]2014DOTA2国际邀请赛 第三日比赛排位扑朔迷离
2014/07/12 DOTA
[04:23]DOTA2上海特锦赛小组赛第一日 TOP10精彩集锦
2016/02/27 DOTA
python中使用smtplib和email模块发送邮件实例
2014/04/22 Python
用Python编写一个简单的Lisp解释器的教程
2015/04/03 Python
关于Django外键赋值问题详解
2017/08/13 Python
Python3导入自定义模块的三种方法详解
2018/04/13 Python
Python使用post及get方式提交数据的实例
2019/01/24 Python
python日志logging模块使用方法分析
2019/05/23 Python
详解Pandas之容易让人混淆的行选择和列选择
2019/07/10 Python
Python中类似于jquery的pyquery库用法分析
2019/12/02 Python
pandas中read_csv的缺失值处理方式
2019/12/19 Python
python将logging模块封装成单独模块并实现动态切换Level方式
2020/05/12 Python
Python实现数字的格式化输出
2020/08/01 Python
工程建设实施方案
2014/03/14 职场文书
二年级班级文化建设方案
2014/05/10 职场文书
幼儿园大班教学反思
2016/03/02 职场文书
2019XX公司员工考核管理制度!
2019/08/07 职场文书
创业计划书之烤红薯
2019/09/26 职场文书
使用CSS实现六边形的图片效果
2022/08/05 HTML / CSS