React-Router简易入门

74 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的的第8天

安装React-Router

推荐使用yarn安装最新版v6:

yarn add react-router-dom@6

如果使用npm的话,使用下面语句:

npm install react-router-dom@6

基础使用

我们先实现一个十分简单的demo,它有一个首页,首页有两个超链接,一个可以跳转到首页本身,另一个可以跳转到“关于”页面

先编写两个组件,一个用于首页,另一个用于关于页。

function Home () {
  return (
    <div>home</div>
  )
}

export default Home
function About () {
  return (
    <div>about</div>
  )
}

export default About

再编写``App.js`

// 引入两个组件
import Home from "./Home"
import Login from "./About"

// 进行路由配置
import { BrowserRoute, Link, Routes, Route } from "react-router-dom"

function App () {
  return (
    // 声明当前要用一个非hash模式的路由
    <BrowserRouter>
      {/* 指定跳转的组件 to用来配置路由地址 */}
      <Link to="/">首页</Link>
      <Link to="/about">关于</Link>
      {/* 路由出口 路由对应的组件会在这里进行渲染 */}
      <Routes>
        {/* 指定路径和组件的对应关系 path代表路径 element代表组件成对出现 path -> element */}
        <Route path="/" element={<Home />}></Route>
        <Route path="/about" element={<About />}></Route>
      </Routes>
    </BrowserRouter>
  )
}

export default App

yarn start运行一下看看效果:

首页: image.png

点击“关于”

image.png

API介绍

BrowerRouter

用来包裹其它需要路由的组件,所以通常会需要在你的应用的最外层用它。一个React应用只需要使用一次。

除了BrowserRouter,还有一种叫做HashRouter,它们的区别如下:

模式实现方式路由url表现
HashRouter监听url hash值实现http://localhost:3000/#/about
BrowerRouterh5的 history.pushState API实现http://localhost:3000/about

Link

用于指定导航链接,完成路由跳转,相当于HTML的<a>标签。语法如下:

<Link to="/">首页</Link>

其中to的参数表示路由地址,即要跳转的目标地址。

Routes & Route

Routes是用来包住路由访问路径(Route)的。它决定用户在浏览器中输入的路径到对应加载什么React组件。语法如下:

<Routes>
    <Route path="/" element={<Home />} />
    <Route path="/about" element={<About />} />
</Routes>

当用户访问path对应的路径后,浏览器将会渲染element对应的组件。

总结

以上就是React-Router的简易入门,该库弥补了React原生不支持路由功能的遗憾,并且使用简单,容易上手。