返回

React 18 路由的配置与参数传递:终极指南

前端

React 18 路由配置

React 18 提供了多种路由配置方式,您可以根据自己的项目需求选择最合适的一种。

1. 使用 React Router

React Router 是一个流行的第三方路由库,它为 React 提供了一套完整的路由解决方案。

  • 安装 React Router:
npm install react-router-dom
  • 在 App.js 中配置路由:
import { BrowserRouter, Routes, Route } from "react-router-dom";

function App() {
  return (
    <BrowserRouter>
      <Routes>
        <Route path="/" element={<Home />} />
        <Route path="/about" element={<About />} />
        <Route path="/contact" element={<Contact />} />
      </Routes>
    </BrowserRouter>
  );
}

export default App;
  • 在组件中使用路由:
import { Link } from "react-router-dom";

function Home() {
  return (
    <div>
      <h1>Home Page</h1>
      <Link to="/about">About</Link>
    </div>
  );
}

export default Home;

2. 使用内置的 <Routes><Route> 组件

React 18 内置了 <Routes><Route> 组件,您可以直接使用它们来配置路由。

  • 在 App.js 中配置路由:
import { Routes, Route } from "react-router";

function App() {
  return (
    <Routes>
      <Route path="/" element={<Home />} />
      <Route path="/about" element={<About />} />
      <Route path="/contact" element={<Contact />} />
    </Routes>
  );
}

export default App;
  • 在组件中使用路由:
import { Link } from "react-router-dom";

function Home() {
  return (
    <div>
      <h1>Home Page</h1>
      <Link to="/about">About</Link>
    </div>
  );
}

export default Home;

React 18 参数传递

在 React 18 中,您可以通过多种方式向路由组件传递参数。

1. 使用 URL 参数

// App.js
import { Routes, Route } from "react-router";

function App() {
  return (
    <Routes>
      <Route path="/user/:id" element={<User />} />
    </Routes>
  );
}

export default App;

// User.js
import { useParams } from "react-router-dom";

function User() {
  const { id } = useParams();

  return (
    <div>
      <h1>User Page</h1>
      <p>User ID: {id}</p>
    </div>
  );
}

export default User;

2. 使用查询参数

// App.js
import { Routes, Route } from "react-router";

function App() {
  return (
    <Routes>
      <Route path="/search" element={<Search />} />
    </Routes>
  );
}

export default App;

// Search.js
import { useLocation } from "react-router-dom";

function Search() {
  const location = useLocation();

  const query = new URLSearchParams(location.search);
  const keyword = query.get("keyword");

  return (
    <div>
      <h1>Search Page</h1>
      <p>Keyword: {keyword}</p>
    </div>
  );
}

export default Search;

3. 使用状态管理工具

您可以使用状态管理工具(如 Redux)将参数存储在全局状态中,然后在路由组件中使用这些参数。

// App.js
import { Routes, Route } from "react-router";
import { useSelector } from "react-redux";

function App() {
  const user = useSelector((state) => state.user);

  return (
    <Routes>
      <Route path="/user" element={<User />} />
    </Routes>
  );
}

export default App;

// User.js
import { useParams } from "react-router-dom";

function User() {
  const { id } = useParams();

  const user = useSelector((state) => state.user);

  return (
    <div>
      <h1>User Page</h1>
      <p>User ID: {id}</p>
      <p>User Name: {user.name}</p>
    </div>
  );
}

export default User;

结语

希望本指南能帮助您更好地理解和使用 React 18 的路由功能。如果您还有其他问题,欢迎随时与我联系。