返回

React Router 六步成型,引领你进入前端路由的新篇章

前端

在当今快节奏的网络世界中,用户期望网站或应用程序能够快速响应他们的操作,并在不同的页面或视图之间无缝切换。前端路由技术应运而生,它允许你构建单页面的应用程序,无需重新加载整个页面即可在不同的视图之间切换。React Router 是一个流行的前端路由库,专门为 React 框架设计,它提供了丰富的功能和直观的使用体验。

1. 安装 React Router

首先,你需要安装 React Router。你可以使用 npm 或 yarn 包管理器来安装它。

npm install react-router-dom

2. 配置路由

接下来,你需要配置路由。路由配置决定了应用程序中不同视图之间的映射关系。你可以使用 <BrowserRouter> 组件来配置路由。

import { BrowserRouter, Route, Switch } from "react-router-dom";

const App = () => {
  return (
    <BrowserRouter>
      <Switch>
        <Route path="/" exact component={Home} />
        <Route path="/about" component={About} />
        <Route path="/contact" component={Contact} />
      </Switch>
    </BrowserRouter>
  );
};

export default App;

在这个例子中,我们配置了三个路由:

  • 根路由(/):指向主页组件(Home)
  • 关于我们路由(/about):指向关于我们组件(About)
  • 联系我们路由(/contact):指向联系我们组件(Contact)

3. 使用路由链接

你可以使用 <Link> 组件来创建路由链接。路由链接允许用户在不同的视图之间切换。

import { Link } from "react-router-dom";

const Navbar = () => {
  return (
    <nav>
      <Link to="/">Home</Link>
      <Link to="/about">About Us</Link>
      <Link to="/contact">Contact Us</Link>
    </nav>
  );
};

export default Navbar;

4. 使用组件

你可以使用组件来表示应用程序中的不同视图。

import React from "react";

const Home = () => {
  return (
    <div>
      <h1>Home</h1>
      <p>This is the home page.</p>
    </div>
  );
};

export default Home;

5. 传递参数

你可以使用 useParams() 钩子来传递参数。

import React, { useParams } from "react";

const ProductDetails = () => {
  const { productId } = useParams();

  return (
    <div>
      <h1>Product Details</h1>
      <p>Product ID: {productId}</p>
    </div>
  );
};

export default ProductDetails;

6. 使用路由守卫

你可以使用路由守卫来保护你的路由。

import React, { useEffect } from "react";
import { useHistory } from "react-router-dom";

const PrivateRoute = ({ component: Component, ...rest }) => {
  const history = useHistory();

  useEffect(() => {
    const user = localStorage.getItem("user");
    if (!user) {
      history.push("/login");
    }
  }, [history]);

  return <Component {...rest} />;
};

export default PrivateRoute;

现在,你已经掌握了 React Router 的基本知识。你可以使用这些知识来构建自己的单页面的应用程序。