React Router 路由详解


在React中,我们通常使用 react-router-dom 这个库来处理路由。

1. 安装 react-router-dom

首先,你需要安装 react-router-dom ,可以使用 npm 或 yarn 来安装:

npm install react-router-dom
yarn add react-router-dom


2. 创建路由

在React应用中,可以定义路由来指定URL与组件之间的映射关系。这通常在 App.js 或其他顶级组件中完成。

import React from 'react';  
import { BrowserRouter as Router, Switch, Route } from 'react-router-dom';  
import Home from './pages/Home';  
import About from './pages/About';  
import Contact from './pages/Contact';  
  
function App() {  
  return (  
    <Router>  
      <Switch>  
        <Route exact path="/" component={Home} />  
        <Route path="/about" component={About} />  
        <Route path="/contact" component={Contact} />  
      </Switch>  
    </Router>  
  );  
}  
  
export default App;

在上述代码中,使用了 BrowserRouter(简写为Router)来包裹整个应用。

Switch组件 用于只渲染第一个匹配的路由,而 Route组件 则定义了URL路径与组件之间的映射关系。


3. 创建链接和导航

在React中,可以使用Link组件来创建链接,并使用 <a> 标签的样式。

import React from 'react';  
import { Link } from 'react-router-dom';  
  
function Navbar() {  
  return (  
    <nav>  
      <ul>  
        <li>  
          <Link to="/">Home</Link>  
        </li>  
        <li>  
          <Link to="/about">About</Link>  
        </li>  
        <li>  
          <Link to="/contact">Contact</Link>  
        </li>  
      </ul>  
    </nav>  
  );  
}  
  
export default Navbar;

在上述代码中,我们使用了 Link组件 来创建链接,并通过 to属性 指定了链接的目标 URL。

当用户点击这些链接时,React Router 将自动处理导航,并渲染相应的组件。


4. 渲染路由参数和查询字符串

可以使用 React Router 来渲染路由参数和查询字符串。

这通常在组件内部完成,使用 useParamsuseLocation 这两个 Hook。

import React from 'react';  
import { useParams, useLocation } from 'react-router-dom';  
  
function UserPage() {  
  const { id } = useParams(); // 从URL中解析参数,例如:/user/123 中的 123  
  const location = useLocation(); // 获取当前位置对象,包含pathname、search等属性  
  
  return (  
    <div>  
      <h1>User ID: {id}</h1>  
      <p>Query string: {location.search}</p>  
    </div>  
  );  
}  
  
export default function UserRoutes() {  
  return (  
    <Route path="/user/:id" component={UserPage} />  
  );  
}

在上述代码中,使用了 useParams Hook 来从 URL 中解析参数,并使用 useLocation Hook 来获取当前位置对象。
这样就可以在组件内部使用这些参数和查询字符串了。

相关推荐

  1. vue-详解

    2024-06-13 12:10:03       39 阅读
  2. Remix详解

    2024-06-13 12:10:03       136 阅读
  3. React Router 详解

    2024-06-13 12:10:03       34 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-13 12:10:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-13 12:10:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-13 12:10:03       82 阅读
  4. Python语言-面向对象

    2024-06-13 12:10:03       91 阅读

热门阅读

  1. Mysql连接查询

    2024-06-13 12:10:03       29 阅读
  2. 【杂记-浅谈缺省VLAN】

    2024-06-13 12:10:03       33 阅读
  3. c++【入门】小明的游泳时间

    2024-06-13 12:10:03       30 阅读
  4. 41、Flink 的默认窗口触发器 EventTime 代码示例

    2024-06-13 12:10:03       28 阅读
  5. Scope of use of industrial cleaning machines

    2024-06-13 12:10:03       31 阅读
  6. 【无标题】

    2024-06-13 12:10:03       32 阅读
  7. torch.squeeze() dim=1 dim=-1 dim=2

    2024-06-13 12:10:03       31 阅读
  8. Trusty qemu + android环境搭建详细步骤

    2024-06-13 12:10:03       30 阅读
  9. Apache Flink 如何保证 Exactly-Once 语义

    2024-06-13 12:10:03       34 阅读
  10. mysql 相关

    2024-06-13 12:10:03       29 阅读
  11. Eclipse项目导入笔记大全&踩坑大全

    2024-06-13 12:10:03       80 阅读
  12. ARCGIS进行视域分析及地形图制作

    2024-06-13 12:10:03       32 阅读
  13. CPython源码学习5:字节对象

    2024-06-13 12:10:03       26 阅读