当前位置:首页 > 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如何使用路由

react如何使用路由

使用 React Router 的基本方法 React Router 是 React 应用中实现路由功能的核心库。以下是基本使用方法: 安装 React Router 依赖包: npm insta…

react如何使用ueditor

react如何使用ueditor

安装 UEditor 下载 UEditor 的官方版本,解压后将整个文件夹放入项目的 public 目录下。确保可以通过 URL 直接访问 UEditor 的资源文件,例如 public/uedito…

react如何使用webview

react如何使用webview

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

react thunk 如何使用

react thunk 如何使用

使用 React Thunk 的基本步骤 安装 Redux 和 Redux Thunk 作为依赖项: npm install redux redux-thunk 在 Redux store 配置中…

react filter如何使用

react filter如何使用

react filter 的基本用法 在 React 中,filter 通常用于筛选数组数据,常见于列表渲染或数据处理场景。filter 是 JavaScript 数组的原生方法,但在 React 中…

react如何使用echarts

react如何使用echarts

安装 ECharts 和 React 适配库 在 React 项目中使用 ECharts 需要安装 ECharts 核心库及其 React 适配库。通过 npm 或 yarn 安装: npm in…