React路由

163 阅读2分钟

React路由

路由的介绍

现代的前端应用大多都是SPA(单页应用程序),也就是只有一个HTML页面的应用程序。为了有效的使用单页面去管理原来的多页面的功能,前端路由应运而生。
前端路由的功能:让用户从一个视图(页面)导航到另一个视图(页面)
前端路由是一套映射规则,在React中,是URL路径与组件的对应关系
使用React路由简单来说,就是配置路径与组件(配对)

使用步骤
  1. 安装:yarn add react-router-dom
  2. 导入路由的三个核心组件:
    import {BrowserRouter as Router, Route, Link} from 'react-router-dom'
    //用Router名字代替BrowserRouter组件方便写代码,实际是引入的BrowserRouter组件
  1. 用Router组件包裹整个应用(重要)
    <Router>
    <div className = "APP>
    //...这里是页面内容
    </div>
    </Router>
  1. Link组件为导航菜单(路由入口)
    <Link to = "/first">页面一</Link>
  1. Route组件配置路由规则和要展示的组件(路由出口)
    const First = () => <p>页面一的内容</p>
    <Router>
    <div className = "APP">
    <Link to = "/first">页面一</Link>
    <Route path = "/first" component = {First}></Route>
    //path表示路由的规则,去匹配对应的规则,component表示当这个属性匹配的时候要展示的组件
    //当点击页面一时就会将<First />组件展示出来
    </div>
    </Router>
常用组件说明
  1. Router组件:包裹整个组件,一个Router应用只需要使用一次
    Router两种常用:HashRoutere和BrowserRouter,没有什么区别,只是会在网址出现#号
  2. Link组件:用于指定导航链接(a标签)
    to属性:浏览器地址栏中的pathname(location.pathname),也是href属性所对应的值
    <Link to = "/first">页面一</Link>
    //浏览器中显示如下:
    <a href = ”/first“>页面一</a>
  1. Route组件:指定路由组件相关信息:
    path属性:路由规则
    component属性:展示的组件
    Route组件写在哪,渲染出来的组件就展示在哪
编程式导航

image.png

默认路由

默认路由:表示进入页面是就会匹配的路由
默认路由就是path属性为:“/”

    <Route path = ”/“ component = {Home}>
    //页面一加载就会展示在页面上
匹配模式
  1. 模糊匹配模式
    默认情况下,React路由是模糊匹配模式,只要pathname以path开头就会匹配成功,就是说只要Link组件中的to的值以path就能匹配成功,如默认路由都能匹配成,/first和/first能匹配成功,/first和/first/a也能匹配成功
  2. 精准匹配模式
    给Route组件添加exact属性,让其变为精确匹配模式
    精确匹配:只有当path和pathname完全匹配时从会展示该路由
    <Route exact path = "/" component = {First}>
    //只有当Link中to为”/“时才会展示First组件
嵌套路由

使用步骤

image.png