react 实现跳转
React 实现页面跳转的方法
在 React 中实现页面跳转可以通过多种方式,以下是常见的几种方法:
使用 React Router 的 Link 组件
React Router 是 React 生态中最常用的路由库,通过 Link 组件可以实现声明式导航。
import { Link } from 'react-router-dom';
function App() {
return (
<div>
<Link to="/about">跳转到关于页面</Link>
</div>
);
}
使用 useNavigate Hook
在函数组件中,可以使用 useNavigate Hook 进行编程式导航。
import { useNavigate } from 'react-router-dom';
function HomePage() {
const navigate = useNavigate();
return (
<button onClick={() => navigate('/about')}>
跳转到关于页面
</button>
);
}
使用 history 对象
在类组件中,可以通过 history 对象实现跳转。
import { withRouter } from 'react-router-dom';
class MyComponent extends React.Component {
handleClick = () => {
this.props.history.push('/about');
};
render() {
return (
<button onClick={this.handleClick}>
跳转到关于页面
</button>
);
}
}
export default withRouter(MyComponent);
使用 window.location
如果不使用 React Router,可以直接操作 window.location 实现跳转。
function redirectToAbout() {
window.location.href = '/about';
}
function App() {
return (
<button onClick={redirectToAbout}>
跳转到关于页面
</button>
);
}
使用 Navigate 组件
React Router v6 提供了 Navigate 组件,可以在渲染时进行重定向。
import { Navigate } from 'react-router-dom';
function ProtectedRoute({ isAuthenticated }) {
if (!isAuthenticated) {
return <Navigate to="/login" replace />;
}
return <div>受保护的内容</div>;
}
注意事项
- 使用 React Router 时,确保应用被
BrowserRouter或HashRouter包裹 - 编程式导航可以通过
replace参数控制是否替换历史记录 - 动态路由参数可以通过模板字符串传递
navigate(`/user/${userId}`);
以上方法涵盖了 React 中实现页面跳转的主要场景,开发者可以根据具体需求选择合适的方式。







