React12.路由

Posted 阿拉的梦想

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了React12.路由相关的知识,希望对你有一定的参考价值。

【React】12.路由

1.路由介绍

现代的前端应用大多都是 SPA(单页应用程序),也就是只有一个html 页面的应用程序。因为它的用户体验更好、对服务器的压力重小,所以更受欢迎。为了有效的使用单个页面来管理原来多页面的功能,前端路由
应运而生。

  • 前端路由的功能:让用户从一个视图(页面)导航到另一个视图(页面)
  • 前端路由是一套映射规则,在React中,是 URL路径组件 的对应关系
  • 使用React路由简单来说,就是配置路径和组件的对应关系

2.路由的基本使用

2.1 安装路由组件

安装yarn,已有的跳过

npm install -g yarn

使用yarn 安装路由组件

yarn add react-router-dom

2.2 导入路由组件

import 
  BrowserRouter,
  Routes,
  Route,
  Link,Outlet
 from "react-router-dom";

2.3使用Router组件包裹整个应用

完整示例:

import React from 'react'
import ReactDOM from 'react-dom/client'

//1.导包
import 
  BrowserRouter,
  Routes,
  Route,
  Link,Outlet
 from "react-router-dom";


const First = () =>
  console.log("first")
  return  (<p>第一条内容</p>)




const Home = () => (
  <div>
    <h1>路由</h1>
    /* 2. 定义link就是超链接,跳转到指向的页面 */
    <Link to='/first'>first</Link>
    /* 若要显示子路由的内容,必须要有Outlet */
    <Outlet />
  </div>
)


const root = ReactDOM.createRoot(document.getElementById("root"))
root.render(
  //渲染
  //3.定义路由路径
  <BrowserRouter>
    <Routes>
      <Route path="/" element=<Home />>
        /* <Route path='first' element=<First /> /> */
      </Route>
      <Route path='/first' element=<First /> />
    </Routes>
  </BrowserRouter>
)

效果:

点击first跳转到另一个页面:

2.4 子路由

Route 下面可以有子路由,子路由的全路径=父路由路径+子路由路径。
父路由下必须包含<Outlet />才能在父页面下展示子页面。

2.5 HashRouter

不推荐。HashRouter是使用URL的hash值实现,会使浏览器的地址根目录以#开头,其他看不出差别。
只需要将BrowserRouter换成HashRouter标签即可,其他无需改动。

2.6 Link标签

会被编译成一个a标签。to属性编译成href。

以上是关于React12.路由的主要内容,如果未能解决你的问题,请参考以下文章

React12.路由

使用react-router-dom@6,如何完成路由守卫这样的功能——使用高阶组件的包裹。

使用react-router-dom@6,如何完成路由守卫这样的功能——使用高阶组件的包裹。

react路由组件&&非路由组件

react函数式组件(非路由组件)实现路由跳转

React路由Route?