使用 React Router时,如何获取当前页面的路由或浏览器中地址栏中的地址?
参考答案:
在React Router中,你可以使用useLocation
hook 来获取当前页面的路由或浏览器中地址栏中的地址。useLocation
会返回一个location
对象,这个对象包含了当前URL的信息,包括pathname(路径名)、search(查询参数)和hash(哈希值)。
以下是如何使用useLocation
来获取当前路由的示例:
import { useLocation } from 'react-router-dom';
function MyComponent() {
let location = useLocation();
return (
<div>
<p>当前路径: {location.pathname}</p>
<p>查询参数: {location.search}</p>
<p>哈希值: {location.hash}</p>
</div>
);
}
在这个例子中,location.pathname
会返回当前页面的路径名,location.search
会返回查询参数(以问号?
开始的部分),location.hash
会返回哈希值(以井号#
开始的部分)。
请注意,useLocation
hook 只有在路由更改时才会重新渲染组件。如果你需要在路由更改时执行某些操作,可以使用useEffect
hook 监听location
的变化:
import { useLocation, useEffect } from 'react-router-dom';
function MyComponent() {
let location = useLocation();
useEffect(() => {
// 当路由更改时,这个函数会被调用
console.log('路由已更改:', location.pathname);
}, [location]); // 当location更改时,useEffect会重新运行
return (
<div>
<p>当前路径: {location.pathname}</p>
</div>
);
}
在这个例子中,当路由更改时,控制台会输出新的路径名。