返回

利用 React Router 在 Hooks + TS 中实现页面跳转

前端

前言

在上一篇文章中,我们已经完成了项目主页上的项目列表的展示部分,并且在项目列表中实现了点击项目进入项目详情页面的功能。

点击某一项后,页面上的路径变成了

http://localhost:3000/projects/1

从上述路径上可以看到,路由发生了跳转,同时请求路径也发生了变化。

在这一篇文章里,我们会使用到React Router中的 useHistory hook来实现页面的跳转。

useHistory hook

useHistory hook允许我们访问并修改浏览器的历史记录。它是一个 React Router 内置的 hook,可以用来在组件中访问历史记录对象。

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

实现页面跳转

  1. 引入 useHistory hook

在需要实现页面跳转的组件中,引入 useHistory hook。

import { useHistory } from "react-router-dom";
  1. 在组件中使用 useHistory hook

在组件中使用 useHistory hook来获取历史记录对象。

const history = useHistory();
  1. 使用 history.push() 方法进行页面跳转

使用 history.push() 方法来进行页面跳转。history.push() 方法接收一个路径作为参数,用于跳转到指定的页面。

history.push("/projects/1");

代码示例

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

const ProjectList = () => {
  const history = useHistory();

  const handleClick = (id) => {
    history.push(`/projects/${id}`);
  };

  return (
    <ul>
      {projects.map((project) => (
        <li key={project.id} onClick={() => handleClick(project.id)}>
          {project.name}
        </li>
      ))}
    </ul>
  );
};

总结

通过使用 React Router 中的 useHistory hook,我们可以在 Hooks + TS 项目中轻松实现页面的跳转。这种方法简单易用,并且可以方便地控制页面的跳转行为。

在下一篇文章中,我们将继续完善我们的任务管理系统,实现添加任务和编辑任务的功能。