美文网首页React Native开发经验集React.js
react-router4.0 路由基本使用案例

react-router4.0 路由基本使用案例

作者: 寒小跳 | 来源:发表于2019-06-28 19:39 被阅读0次

2019年6月28日 19:20:01
先看页面效果


react-router4.0+的基本使用.gif image.png

可以看到现在的react-router 版本已经到达了5.0.1了,相对于之前的版本有较大的改动,现在react路由系统已经逐渐像组件那样使用了。本人对之前版本的路由基本上没有多少了解。现在由于项目需要使用开始学习路由的使用,因此可能也会有不少理解不对的地方,希望读者指出错误和不足之处。

以下是路由的基本使用,这个例子官网也有,这里基本上没有太多的改动。里面包含以下几个功能

  1. 基本的页面跳转,不带参数
  2. 嵌套路由,子路由里面有带参数跳转
import React, { Component } from 'react'
import { BrowserRouter as Router, Route, Link } from 'react-router-dom'

class BasicExample extends Component {
  render() {
    return (
      <Router>
        <ul>
          <li><Link to="/">首页</Link></li>
          <li><Link to="/about">关于</Link></li>
          <li><Link to="/topics">话题</Link></li>
        </ul>
        <hr />

        <Route exact path="/" component={Home}></Route>
        <Route path="/about" component={About}></Route>
        <Route path="/topics" component={Topics}></Route>
      </Router>
    )
  }
}

class Home extends Component {
  render() {
    return (
      <div>我是Home</div>
    )
  }
}
class About extends Component {
  render() {
    return (
      <div>我是About</div>
    )
  }
}
class Topics extends Component {
  componentDidMount(){
    console.log('Topics', this.props)
  }
  render() {
    let { match } = this.props
    return (
      <div>
        <div>我是Topics</div>
        <ul>
          <li><Link to={`${match.url}/first`}>first</Link></li>
          <li><Link to={`${match.url}/second`}>second</Link></li>
          <li><Link to={`${match.url}/third`}>third</Link></li>
        </ul>

        <Route path={`${match.url}/:topicId`} component={Topic}></Route>
        <Route 
          exact
          path={match.url}
          render={() => <h3>请选择一个话题</h3>}
        >
        </Route>
      </div>
    )
  }
}

class Topic extends Component {
  componentDidMount() {
    console.log('Topic', this.props)
  }
  render() {
    let { match } = this.props
    return (
      <div>params参数 topicId: {match.params.topicId}</div>
    )
  }
}
export default BasicExample

注意<Route/>路由渲染是有优先级顺序的,可能会有同一个当前URL匹配多个<Route/>。
例如第一个根路径 "/",如果它的<Route/>里面不加exact属性,则它对应的组件总是会被匹配到渲染到页面上。exact属性的意思就是:当前URL必须完全匹配,"/"只会匹配到 "/",而类似"/aaa"的其他URL是不会被匹配到的。

相关文章

  • react-router4.0 路由基本使用案例

    2019年6月28日 19:20:01先看页面效果 可以看到现在的react-router 版本已经到达了5.0....

  • Vue-router(路由)

    基本使用 创建路由的简单案例演示 路由的使用步骤1.引入js文件 2.定义(注册)路由跳转的组件----使用全局扩...

  • 学习React时遇到的问题

    react router 路由跳转出现Cannot GET 错误问题原因是在react-router4.0 has...

  • react实践

    项目用react-router4.0,在做二级路由且二级路由有公共组件的时候 首先思路是这样的,但是发现这样生命周...

  • 2018-11-22

    路由的基本使用 1 路由的基本使用2 再路由注册再跟实例的时候我们可以全局的访问路由,this.$router或者...

  • vue-router

    前端路由的基本原理 vue-router的基本使用 命名路由 路由参数 嵌套路由

  • React路由

    React-Router的基本配置 基本案例 路由传参 动态路由 首先在app.jsx中添加路由(分别是新闻列表页...

  • Day13 - Flutter - 路由导航

    概述 路由管理 路由基本使用 命名路由使用(重点) 页面跳转的拓展 一、路由管理 1.1、认识Flutter路由路...

  • angualr(二) 路由之angualr-router

    创建项目 路由的基本使用 路由对象图示 路由基本配置 路由通配符配置 HTML里面跳转链接 在js里面跳转路由 路...

  • 路由基本使用

    使用Anglar Router导航 路由基础,路由相关对象 Routes 路由配置,保存着url对应展示哪个组件,...

网友评论

    本文标题:react-router4.0 路由基本使用案例

    本文链接:https://www.haomeiwen.com/subject/praecctx.html