React-Router入门使用

React Router 是一个基于React之上的强大路由库,它可以让你向应用中快速地添加视图和数据流,同时保持页面与URL间的同步。

React路由跳转

制作一个平常一样的点击切换路由效果,首先需要安装cnpm install react-router-dom

  • 创建一个根目录AppRouter.js,并仰引入react-router-dom,在创建两个js组件
import React, { Component } from 'react'
import { BrowserRouter as Router, Route, Link } from 'react-router-dom'
import Index from './Index'
import List from './List'
class APPRouter extends Component {
  render() {
    return (
      <Router>
        <ul>
          <li>
            <Link to="/">首页</Link>
          </li>
          <li>
            <Link to="/List/23">列表页</Link>
          </li>
        </ul>
        <Route path="/" exact component={Index}></Route>
        <Route path="/list" component={List}></Route>
      </Router>
    )
  }
}
export default APPRouter
  • exact精准匹配
    Index.jsList.js文件中分别写入以下代码
import React, { Component } from 'react'
class Index extends Component {
  render() {
    return <div> 列表页面 </div>
  }
}

export default Index

在这里插入图片描述

ReactRouter动态传值

这就比较常见的根据id跳转页面,显示不同内容.
这个设置是以:开始的,然后紧跟着你传递的key(键名称)名称。

<Route path="/list/:id" component={List}></Route>

就可以在Link上设置值了,模拟一个json数据,点击跳转页面

import React, { Component } from 'react'
import { Link, Redirect } from 'react-router-dom'

class Index extends Component {
  constructor(props) {
    super(props)
    this.state = {
      list: [
        { cid: 1, title: '这个是首页1' },
        { cid: 2, title: '这个是首页1' },
        { cid: 3, title: '这个是首页2' }
      ]
    }
  }
  render() {
    return (
      <div>
        <ul>
          {this.state.list.map((item, index) => {
            return (
              <li key={index}>
                <Link to={'/list/' + item.cid}>{item.title}</Link>
              </li>
            )
          })}
        </ul>
      </div>
    )
  }
}

export default Index

怎么接受传过来的id,组件接收传递过来的值的时候,可以在声明周期componentDidMount中进行

  • patch:自己定义的路由规则,可以清楚的看到是可以产地id参数的。
  • url: 真实的访问路径,这上面可以清楚的看到传递过来的参数是什么。
  • params:传递过来的参数,key和value值。
    在这里插入图片描述
componentDidMount() {
    console.log(this.props.match)
    //获取传过来的id
    let tempId = this.props.match.params.id
    this.setState({
      id: tempId
    })
  }

以上就是比较简单的react-router使用

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值