当前位置:首页 > React

react列表详情如何跳转

2026-03-11 03:20:50React

路由配置

使用react-router-dom库配置路由,在根组件中定义列表页和详情页的路由规则。列表页路径通常为/list,详情页路径为/detail/:id(动态参数传递)。

import { BrowserRouter as Router, Routes, Route } from 'react-router-dom';
import ListPage from './ListPage';
import DetailPage from './DetailPage';

function App() {
  return (
    <Router>
      <Routes>
        <Route path="/list" element={<ListPage />} />
        <Route path="/detail/:id" element={<DetailPage />} />
      </Routes>
    </Router>
  );
}

列表项点击事件

在列表组件中,为每个列表项绑定点击事件,通过useNavigate钩子跳转至详情页,并携带对应的ID参数。

react列表详情如何跳转

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

function ListPage() {
  const navigate = useNavigate();
  const items = [{ id: 1, name: 'Item 1' }, { id: 2, name: 'Item 2' }];

  return (
    <ul>
      {items.map(item => (
        <li 
          key={item.id}
          onClick={() => navigate(`/detail/${item.id}`)}
        >
          {item.name}
        </li>
      ))}
    </ul>
  );
}

详情页数据获取

在详情页组件中,通过useParams钩子获取URL中的ID参数,并根据ID加载对应的详情数据。

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

function DetailPage() {
  const { id } = useParams();
  const [detail, setDetail] = useState(null);

  useEffect(() => {
    fetch(`/api/details/${id}`)
      .then(res => res.json())
      .then(data => setDetail(data));
  }, [id]);

  return (
    <div>
      {detail ? <h1>{detail.title}</h1> : <p>Loading...</p>}
    </div>
  );
}

状态管理(可选)

若需在跳转时传递复杂数据而非仅ID,可通过state参数传递。列表页点击时添加状态:

react列表详情如何跳转

navigate(`/detail/${item.id}`, { state: { itemData: item } });

详情页通过useLocation获取状态:

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

function DetailPage() {
  const { state } = useLocation();
  const itemData = state?.itemData;
}

返回按钮处理

在详情页添加返回按钮,通过navigate(-1)返回列表页。

<button onClick={() => navigate(-1)}>Back to List</button>

标签: 跳转详情
分享给朋友:

相关文章

h5实现登录页面跳转页面跳转页面跳转页面

h5实现登录页面跳转页面跳转页面跳转页面

实现登录页面跳转的方法 在H5中实现登录页面跳转可以通过多种方式完成,以下是一些常见的方法: 使用JavaScript的window.location方法 通过JavaScript的window.l…

vue实现前端跳转

vue实现前端跳转

Vue 实现前端跳转的方法 在 Vue 中实现前端跳转主要通过路由(Vue Router)完成,以下是几种常见的方式: 声明式导航 使用 <router-link> 组件实现跳转,适合模…

jquery页面跳转

jquery页面跳转

jQuery 页面跳转方法 使用 jQuery 实现页面跳转可以通过多种方式完成,以下是几种常见的方法: 使用 window.location.href 通过修改 window.location.h…

vue 实现页面跳转

vue 实现页面跳转

Vue 实现页面跳转的方法 在 Vue 中实现页面跳转可以通过多种方式,主要包括使用 Vue Router 提供的导航方法和原生 JavaScript 的方式。 使用 Vue Router 的 ro…

js实现跳转页面

js实现跳转页面

使用 window.location.href 实现跳转 通过修改 window.location.href 属性可以跳转到指定 URL。这是最常见且简单的方法,会触发页面刷新并加载新页面。 win…

实现js页面跳转页面

实现js页面跳转页面

使用 window.location.href 通过修改 window.location.href 实现跳转,浏览器会加载新页面并记录到历史记录中: window.location.href = "…