当前位置:首页 > React

react如何路由跳转

2026-02-26 07:23:21React

React 路由跳转方法

在 React 中实现路由跳转通常使用 react-router-dom 库。以下是几种常见的路由跳转方式:

使用 Link 组件导航

Linkreact-router-dom 提供的组件,用于声明式导航,类似于 HTML 的 <a> 标签。

import { Link } from 'react-router-dom';

function App() {
  return (
    <Link to="/about">跳转到 About 页面</Link>
  );
}

使用 useNavigate Hook(函数式跳转)

在函数组件中,可以通过 useNavigate Hook 实现编程式导航。

import { useNavigate } from 'react-router-dom';

function Home() {
  const navigate = useNavigate();

  const handleClick = () => {
    navigate('/about'); // 跳转到 /about
    navigate('/about', { replace: true }); // 替换当前路由(不保留历史记录)
    navigate(-1); // 返回上一页
  };

  return <button onClick={handleClick}>跳转</button>;
}

使用 history 对象(类组件)

在类组件中,可以通过 props.history 或直接使用 createBrowserHistory 实现跳转。

import { withRouter } from 'react-router-dom';

class Home extends React.Component {
  handleClick = () => {
    this.props.history.push('/about'); // 跳转并保留历史记录
    this.props.history.replace('/about'); // 替换当前路由
  };

  render() {
    return <button onClick={this.handleClick}>跳转</button>;
  }
}

export default withRouter(Home);

路由跳转传参

可以通过 URL 参数、查询参数或状态传递数据。

URL 参数

定义路由时配置参数:

react如何路由跳转

<Route path="/user/:id" element={<User />} />

跳转时传递参数:

navigate('/user/123');

在目标组件中通过 useParams 获取:

const { id } = useParams();

查询参数

通过 URLSearchParamsqs 库处理:

react如何路由跳转

navigate('/search?keyword=react');

在目标组件中通过 useLocation 获取:

const { search } = useLocation();
const params = new URLSearchParams(search);
const keyword = params.get('keyword');

状态传递

跳转时通过 state

navigate('/about', { state: { fromHome: true } });

在目标组件中通过 useLocation 获取:

const { state } = useLocation();
console.log(state.fromHome); // true

重定向

使用 Navigate 组件实现条件重定向:

import { Navigate } from 'react-router-dom';

function ProtectedRoute({ isAuth }) {
  return isAuth ? <Dashboard /> : <Navigate to="/login" />;
}

注意事项

  1. 确保项目已安装 react-router-dom(v6 及以上版本):
    npm install react-router-dom
  2. 路由跳转前需在根组件中配置路由器(如 BrowserRouter)。
  3. 动态路由参数需在目标组件中通过 useParams 获取。
  4. 编程式导航时,useNavigate 只能在函数组件或自定义 Hook 中使用。

标签: 跳转路由
分享给朋友:

相关文章

vue实现拼接路径实现跳转

vue实现拼接路径实现跳转

实现拼接路径跳转的方法 在Vue中,可以通过多种方式拼接路径并实现跳转。以下是几种常见的实现方法: 使用router-link组件 通过模板中的router-link组件动态拼接路径: <r…

vue路由实现iframe

vue路由实现iframe

在Vue中实现iframe嵌入可以通过路由配置和组件动态加载来完成。以下是具体实现方法: 路由配置 在Vue Router的路由配置中,通过component属性动态加载iframe组件。需要将目标…

vue实现路由导航

vue实现路由导航

Vue 路由导航的实现 Vue 中实现路由导航通常使用 Vue Router 库。以下是具体实现方法: 安装 Vue Router 在项目中安装 Vue Router 依赖: npm inst…

动态路由的实现vue

动态路由的实现vue

动态路由的实现(Vue) 在Vue中实现动态路由通常涉及以下方法: 基于路由参数(params) 在路由配置中使用动态片段(以冒号开头),例如: const routes = [ { pa…

h5实现登录页面跳转页面跳转页面

h5实现登录页面跳转页面跳转页面

实现H5登录页面跳转 在H5中实现登录页面跳转可以通过多种方式完成,以下是几种常见方法: 使用window.location.href window.location.href = '目标页面…

react 如何跳转

react 如何跳转

使用 React Router 进行页面跳转 React 应用中通常使用 react-router-dom 库实现页面跳转。以下是几种常见的跳转方式: 安装依赖 npm install rea…