当前位置:首页 > React

hashrouter如何使用react

2026-02-26 05:06:10React

HashRouter 的基本使用

在 React 中使用 HashRouter 需要从 react-router-dom 库中导入它。HashRouter 使用 URL 的哈希部分(即 # 后面的内容)来实现路由,适合静态网站或不需要服务器配置的场景。

安装 react-router-dom

npm install react-router-dom

在应用中引入并包裹根组件:

import { HashRouter as Router, Route, Link } from 'react-router-dom';

function App() {
  return (
    <Router>
      <nav>
        <Link to="/">Home</Link>
        <Link to="/about">About</Link>
      </nav>
      <Route exact path="/" component={Home} />
      <Route path="/about" component={About} />
    </Router>
  );
}

路由配置与导航

HashRouter 的路由配置与其他路由器(如 BrowserRouter)类似。可以通过 <Route> 定义路径和组件的映射关系,用 <Link><NavLink> 实现导航。

定义路由组件:

function Home() {
  return <h1>Home Page</h1>;
}

function About() {
  return <h1>About Page</h1>;
}

使用 NavLink 实现高亮导航:

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

function Navigation() {
  return (
    <nav>
      <NavLink exact to="/" activeClassName="active">Home</NavLink>
      <NavLink to="/about" activeClassName="active">About</NavLink>
    </nav>
  );
}

动态路由与参数传递

HashRouter 支持动态路由参数,通过 :param 语法定义,并通过 useParams 钩子获取参数。

hashrouter如何使用react

定义动态路由:

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

在组件中获取参数:

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

function User() {
  const { id } = useParams();
  return <h1>User ID: {id}</h1>;
}

编程式导航

通过 useHistory 钩子实现编程式导航,例如在表单提交后跳转页面。

使用 useHistory

hashrouter如何使用react

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

function Login() {
  const history = useHistory();
  const handleLogin = () => {
    history.push('/dashboard');
  };
  return <button onClick={handleLogin}>Login</button>;
}

嵌套路由

HashRouter 支持嵌套路由,通过子 <Route> 实现层级结构。

嵌套路由配置:

<Route path="/products" component={Products}>
  <Route path="/products/:category" component={Category} />
</Route>

重定向与 404 处理

使用 <Redirect> 实现重定向,通过通配符 * 处理未匹配的路由。

重定向示例:

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

<Route path="/old-path">
  <Redirect to="/new-path" />
</Route>

处理 404 页面:

<Route path="*" component={NotFound} />

注意事项

  • HashRouter 的 URL 中会包含 #,例如 http://example.com/#/about
  • 哈希路由不需要服务器配置,适合静态托管(如 GitHub Pages)。
  • 如果需要干净的 URL(无 #),应使用 BrowserRouter 并配置服务器支持。

分享给朋友:

相关文章

react如何使用webview

react如何使用webview

使用 React 实现 WebView 的方法 在 React 中,可以通过不同的方式实现 WebView 功能,具体取决于开发环境(如 React Native 或 Web 应用)。以下是常见的实现…

react refs如何使用

react refs如何使用

React Refs 的基本概念 Refs 提供了一种直接访问 DOM 节点或 React 组件实例的方式。通常在需要直接操作 DOM 或访问组件方法时使用。 创建 Refs 使用 React.cr…

react如何使用jquery

react如何使用jquery

在 React 中使用 jQuery React 和 jQuery 的设计理念不同,React 基于虚拟 DOM 和数据驱动,而 jQuery 直接操作真实 DOM。若需在 React 中整合 jQu…

react如何使用sass

react如何使用sass

安装 Sass 依赖 在 React 项目中安装 sass 作为开发依赖: npm install sass --save-dev 或使用 Yarn: yarn add sass --dev 创建…

react redux如何使用

react redux如何使用

安装依赖 确保项目已安装 React 和 Redux 相关库。通过以下命令安装核心依赖: npm install redux react-redux @reduxjs/toolkit 创建 Stor…

web项目如何使用react

web项目如何使用react

使用 React 构建 Web 项目的关键步骤 环境准备 安装 Node.js 和 npm(或 yarn),确保开发环境支持现代 JavaScript。通过以下命令创建 React 项目: np…