当前位置:首页 > React

react实现hash路由

2026-01-26 19:18:59React

使用 react-router-dom 实现 Hash 路由

React 中可以通过 react-router-dom 库实现 Hash 路由。Hash 路由的特点是 URL 中包含 #,适合不支持 HTML5 History API 的环境。

安装依赖:

react实现hash路由

npm install react-router-dom

基本实现代码

创建一个简单的 Hash 路由示例:

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

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

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

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

export default App;

路由参数传递

可以通过 useParams 获取 Hash 路由中的参数:

react实现hash路由

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

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

// 在路由配置中添加
<Route path="/user/:id" element={<User />} />

编程式导航

使用 useNavigate 实现编程式导航:

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

function Login() {
  const navigate = useNavigate();
  return (
    <button onClick={() => navigate('/dashboard')}>
      Login
    </button>
  );
}

嵌套路由

Hash 路由同样支持嵌套路由:

<Routes>
  <Route path="/" element={<Layout />}>
    <Route index element={<Home />} />
    <Route path="about" element={<About />} />
  </Route>
</Routes>

注意事项

  • Hash 路由的 URL 会包含 #,如 http://example.com/#/about
  • 相比 BrowserRouter,HashRouter 不需要服务器端配置
  • 适用于静态网站托管等场景
  • 搜索引擎可能对 Hash 路由的支持有限

标签: 路由react
分享给朋友:

相关文章

react如何收录

react如何收录

React 收录方法 React 的收录主要涉及搜索引擎优化(SEO)和预渲染技术。由于 React 是单页应用(SPA),默认情况下内容由 JavaScript 动态生成,可能导致搜索引擎爬虫难以收…

react 如何调试

react 如何调试

调试 React 应用的方法 使用 React Developer Tools 安装 Chrome 或 Firefox 的 React Developer Tools 扩展,可以检查组件树、状态和 p…

如何用react

如何用react

使用React的基本步骤 安装Node.js和npm 确保系统已安装Node.js和npm。Node.js自带npm,可从官网下载安装包。安装完成后,通过命令行验证版本: node -v npm -…

如何关闭react

如何关闭react

关闭React应用的步骤 在开发或运行React应用时,可能需要关闭正在运行的开发服务器或停止应用。以下是几种常见情况的处理方法: 停止开发服务器 如果正在使用npm start或yarn star…

vue实现户籍系统路由实现

vue实现户籍系统路由实现

Vue 实现户籍系统路由方案 户籍系统通常涉及多层级页面和权限控制,以下是基于 Vue Router 的实现方案: 路由模块配置 在 src/router/index.js 中定义路由结构: co…

vue路由实现滑动

vue路由实现滑动

路由切换滑动动画实现 在Vue中实现路由切换时的滑动动画,可以通过Vue的过渡系统结合CSS动画或第三方库完成。以下是几种常见方法: 使用Vue过渡 + CSS动画 包裹<router-vie…