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代码在页面加载时的执行顺序介绍
May 03 Javascript
纯css+js写的一个简单的tab标签页带样式
Jan 28 Javascript
jQuery多条件筛选如何实现
Nov 04 Javascript
JavaScript常用本地对象小结
Mar 28 Javascript
用JavaScript获取页面文档内容的实现代码
Jun 10 Javascript
利用JS轻松实现获取表单数据
Dec 06 Javascript
JS实现动态修改table及合并单元格的方法示例
Feb 20 Javascript
详解vue-cli开发环境跨域问题解决方案
Jun 06 Javascript
jQuery读取本地的json文件(实例讲解)
Oct 31 jQuery
vue使用Font Awesome的方法步骤
Feb 26 Javascript
vue项目中将element-ui table表格写成组件的实现代码
Jun 12 Javascript
python实现迭代法求方程组的根过程解析
Nov 25 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验证手机号码
2015/11/11 PHP
YII框架实现自定义第三方扩展操作示例
2019/04/26 PHP
InnerHtml和InnerText的区别分析
2009/03/13 Javascript
jquery模拟按下回车实现代码
2011/09/20 Javascript
向当前style sheet中插入一个新的style实现方法
2013/04/01 Javascript
JS实现div内部的文字或图片自动循环滚动代码
2013/04/19 Javascript
jquery 关于event.target使用的几点说明介绍
2013/04/26 Javascript
js 页面元素的几个用法总结
2013/11/18 Javascript
javascript之IE版本检测超简单方法
2016/08/20 Javascript
js简单正则验证汉字英文及下划线的方法
2016/11/28 Javascript
微信小程序开发之toast等弹框提示使用教程
2017/06/08 Javascript
JS鼠标滚动分页效果示例
2017/07/05 Javascript
ActiveX控件的使用-js实现打印超市小票功能代码详解
2017/11/22 Javascript
基于jQuery使用Ajax动态执行模糊查询功能
2018/07/05 jQuery
Vue起步(无cli)的啊教程详解
2019/04/11 Javascript
Angular.JS读取数据库数据调用完整实例
2019/07/02 Javascript
微信小程序swiper禁止用户手动滑动代码实例
2019/08/23 Javascript
es6中Promise 对象基本功能与用法实例分析
2020/02/23 Javascript
uni-app如何页面传参数的几种方法总结
2020/04/28 Javascript
python抓取文件夹的所有文件
2018/02/27 Python
django 自定义过滤器的实现
2019/02/26 Python
python lambda表达式在sort函数中的使用详解
2019/08/28 Python
python语言是免费还是收费的?
2020/06/15 Python
详解python中的闭包
2020/09/07 Python
欧姆龙医疗保健与医疗产品:Omron Healthcare
2020/02/10 全球购物
加拿大领先家居家具网上购物:Aosom.ca
2020/05/27 全球购物
What's the difference between deep copy and shallow copy? (深拷贝与浅拷贝有什么区别)
2015/11/10 面试题
介绍一下Mysql的存储引擎
2015/02/12 面试题
自我鉴定模板
2013/10/29 职场文书
四好少年事迹材料
2014/01/12 职场文书
超市开店计划书
2014/04/26 职场文书
司法局2014法制宣传日活动总结
2014/11/01 职场文书
500字作文之关于爸爸
2019/11/14 职场文书
读《人生的智慧》有感:闲暇是人生的精华
2019/12/25 职场文书
一次MySQL启动导致的事故实战记录
2021/09/15 MySQL
尝试使用Python爬取城市租房信息
2022/04/12 Python