useParams, useLocation, useMatch, useNavigate

import React from 'react'

import { useParams, useLocation, useMatch, useNavigate } from 'react-router-dom'

const STU_DATA = [

  {

    id: 1,

    name: "刘备"

  },

  {

    id: 2,

    name: "关羽"

  },

  {

    id: 3,

    name: "张飞"

  },

  {

    id: 4,

    name: "小赵"

  }

]

export default function Student() {

  //  可以使用usePrams() 来获取参数

  const { id } = useParams()

  const location = useLocation() // 获取当前的地址信息

  console.log("location", location)

  const match = useMatch('/student/3') // 用来检查当前url是否匹配某个路由  

  //  如果路径匹配,则返回一个对象,不匹配返回null

  console.log("match", match)

  //  useNavigate 获取一个用于跳转页面的函数

  const nav = useNavigate()

  console.log(nav)

  const stu = STU_DATA.find(item => item.id === +id)

  console.log(id)

  const clickHandler = () => {

    nav('/about') // 使用push,会产生历史记录

    nav('/about', { replace: true })  // 使用呢replace

  }

  return (

    <div>

      <button onClick={clickHandler}>点我一下</button>

      <h2>{id}---{stu.name}</h2>

    </div>

  )

}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容