React router

React router

这篇文章来谈一谈react路由。react路由有它自己的官网。

功能概述 v6.6.0 |反应路由器 (reactrouter.com)

react的路由分为几种

web pc
native 移动使用的
any pc-移动都可以使用

2020以前是router@5,现在我们router@6符合函数组件写法。

用法:

首先,安装router

npm i react-router-dom

安装好后,使用router

1.使用router内置标签link进行路由跳转,但渲染到页面上最终的还是a标签

2.Link组件需要配置to=‘设置路由地址’

显示asdf组件

3.如果仅仅是写了link组件,控制台会报错,使用路由组件必须需要被某种模式调用BrowserRouter(history模式)

4.路由出口

使用《Routes/》组件进行包裹,路由出口

​ Route路由组件进行显示

​ 路由使用path属性 对应的组件使用element属性

}>

5.如果按照上面那种写法,一旦路由多了起来,就非常难看,所以React提供了类似与Vue中写路由方式一样的路由表

​ 1. 通过useRoutes进行设置

​ 2. router文件夹 进行抽离路由

import { Link, useRoutes } from "react-router-dom"
import route from "./router/index"

// 创建App组件
export default function App() {
    //设置路由表 
    const router = useRoutes(route)
    return (
        
{/* 路由入口 */} 默认--- 显示home组件--- 显示login组件
{/* 显示路由组件 */}

路由出口

{router}
) }
import Home from "../pages/Home"
import Login from "../pages/Login"
import Default from "../pages/Default"

const route = [
    {
        path:"/",  // (匹配key)进行输出路由组件
        element:   // 输出路由组件
    },
    {
        path:"/home",  // (匹配key)进行输出路由组件
        element: 
    },
    {
        path:"/login",  // (匹配key)进行输出路由组件
        element: 
    },
]

export default route
标签高亮 navLink

它的className属性中,如果接受一个回调函数,那么第一个参数是个自动传参。如果点了,isActive就是true,如果没点,就是false。可以根据这个返回不同的类名,从而实现标签的高亮。

嵌套路由
  1. 显示asdf组件

​ 1. to不需要写 /名称 写了就一级路由

​ 2. 子路由出口 Outlet组件

​ 3. 书写路由表 => 进行书写匹配规则

​ chilnren:[{

​ path:“child”, 不需要写 /名称 写了就一级路由

​ element: ,

​ }]

如果是原生Route组件,如果写children的话,应该也是在属性上,这样嵌套比较麻烦!!!!

传递参数

serach传递参数

​ Home子路由入口1

​ 路由组件怎么接收?

​ const [serach] = useSearchParams()

​ let name = serach.get(“属性名”)


​ state传递参数

​ Home子路由入口1–

​ 路由组件怎么接收?

​ const {state:{name,sex,age}} = useLocation()

​ useLocation里面有state属性,可以直接解构,将属性拿取出来

动态路由

现在路由表中配置

/:name/:id/···这种格式

然后可以在Link组件中传递参数了。

 去到孩组件
            去到孩组件

如何接受动态路由参数呢?

react-route给我们提供了一种api

useParams() 动态·路由参数都在这个里面包裹着!


编程式导航

编程式导航就是通过点击,跳转到某个导航。在Vue中就是类似于router.push()

react中编程式导航用法

import {useNavigate} from 'react-router-dom'

然后创建一个navigate对象

navigate(to,options) options 配置对象

​ replace false 是往历史记录中添加

​ true 是覆盖


​ state 传递数据

​ navigate(number) 根据浏览器的历史进行跳转

​ number 正数前进

​ 负数后退.


以上就是我们在react-router中常用的一些东西了,如果读者想要更加深入,可以去往官网查看!

功能概述 v6.6.0 |反应路由器 (reactrouter.com)

你可能感兴趣的:(react.js,react.js,前端,javascript)