# useSearchParams与useLocation函数

# useLocation函数

用于获取路由URL的信息的,返回一个location对象。

import { useLocation } from 'react-router-dom'
export default function Bar() {
  const location = useLocation()
  console.log(location)
  return (
    <div>Bar</div>
  )
}

location对象相关属性如下:

  • hash:哈希值
  • key:唯一标识
  • pathname:路径
  • search:query值
  • state:隐式数据

一般传递的数据就是需要拿到query值,不过要通过search去解析对应的query值是比较麻烦的,需要把字符串解析成对象。

所以可以利用useSearchParams函数来获取query数据。

# useSearchParams函数

用于处理URL中的携带数据。

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

export default function Bar() {
  const [searchParams, setSearchParams] = useSearchParams()
  console.log( searchParams.get('age') );
  const handleClick = () => {
	setSearchParams({ age: 22 })
  }
  return (
    <div onClick={handleClick}>Bar</div>
  )
}

可以进行数据的获取,也可以对URL的query进行设置操作,非常的方便。