欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

react路由配置方式详解

程序员文章站 2022-11-25 10:14:32
本文介绍了react路由配置,最近刚开始学,分享给大家,顺便给自己留个笔记。 包含了link跳转以及js触发跳转并传参。 这是项目的目录结构,主要的代码都在sr...

本文介绍了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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。