📅  最后修改于: 2023-12-03 14:53:41.413000             🧑  作者: Mango
在 React Router 的版本 6 中,useHistory
是从 react-router-dom
中导入的新 hook。它可以让你在 React 组件中访问路由历史栈。
要使用 useHistory
,首先需要从 react-router-dom
中导入它:
import { useHistory } from 'react-router-dom';
useHistory
是一个 hook,使用它需要在函数组件中进行。要使用它,只需在组件中调用它,它将返回一个对象,该对象具有访问路由历史栈的方法。例如:
function MyComponent() {
const history = useHistory();
function handleClick() {
history.push('/about');
}
return (
<button onClick={handleClick}>
Go to About
</button>
);
}
上面的组件中,我们使用 useHistory
hook 来获取路由历史栈。然后,我们定义了一个 handleClick
函数,它将调用 history.push
方法,将用户导航到 /about
路由。最后,我们返回了一个按钮,当点击时会触发 handleClick
函数。
useHistory
hook 不接收任何属性。
useHistory
hook 返回一个包含以下属性的对象:
push(path: string, state?: any): void
:将用户导航到指定路由。replace(path: string, state?: any): void
:将用户替换为指定路由。go(n: number): void
:将用户向前或向后将路由历史栈上的条目移至指定位置。goBack(): void
:将用户导航回到前一个路由。goForward(): void
:将用户前进到下一个路由。length: number
:路由历史栈中的条目数。useHistory
hook 是 React Router v6 中的一个很有用的 hook,它让你能够在组件中访问路由历史栈。要使用它,只需从 react-router-dom
中导入并调用即可。