📜  如何在 ReactJS 中使用面包屑组件?(1)

📅  最后修改于: 2023-12-03 14:52:33.380000             🧑  作者: Mango

如何在 ReactJS 中使用面包屑组件?

面包屑组件是一个常见且有用的导航组件,可帮助用户更好地理解当前所处位置和路径。在 ReactJS 中使用面包屑组件十分简单,本文将详细介绍如何实现。

安装

首先需要安装面包屑组件,常用的有 react-breadcrumbs 和 react-router-breadcrumbs-hoc 等。下面以 react-router-breadcrumbs-hoc 为例进行介绍。

npm i react-router-breadcrumbs-hoc --save
使用
导入组件

在需要使用面包屑组件的文件中,首先需要导入组件。

import withBreadcrumbs from 'react-router-breadcrumbs-hoc';
定义路由

然后需要定义路由。这里以 react-router-dom 为例进行介绍。

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

const routes = [
  { path: '/', breadcrumb: '首页' },
  { path: '/users', breadcrumb: '用户' },
  { path: '/users/:userId', breadcrumb: ({ match }) => match.params.userId }
];

const App = () => (
  <div>
    <h1>React 面包屑组件</h1>
    {routes.map((route, index) => (
      <Route
        key={index}
        path={route.path}
        exact={route.exact}
        component={route.component}
      />
    ))}
  </div>
);
生成面包屑路径

接着需要生成面包屑路径。使用 withBreadcrumbs() 方法将定义好的路由传入,然后在组件中会自动生成面包屑路径。

import withBreadcrumbs from 'react-router-breadcrumbs-hoc';

const breadcrumb = ({ breadcrumbs }) => (
  <div>
    {breadcrumbs.map(({ breadcrumb, match }, index) => (
      <span key={match.url}>
        <Link to={match.url}>{breadcrumb}</Link>
        {(index < breadcrumbs.length - 1) && <i> / </i>}
      </span>
    ))}
  </div>
);

export default withBreadcrumbs(routes)(breadcrumb);

在上述代码中,定义了一个 breadcrumb 函数,用于渲染面包屑路径。在该函数的参数中,会传入一个叫做 breadcrumbs 的数组,用于存放每一个面包屑路径的元素。然后使用数组的 map 方法生成面包屑路径。

渲染页面

最后需要在页面中渲染面包屑组件。

import Breadcrumb from './Breadcrumb';

const App = () => (
  <div>
    <h1>React 面包屑组件</h1>
    <Breadcrumb />
    <Switch>
      <Route exact path="/" component={Home} />
      <Route exact path="/users" component={UserList} />
      <Route path="/users/:userId" component={UserProfile} />
      <Route path="*" component={NotFound} />
    </Switch>
  </div>
);

在上述代码中,首先导入刚刚定义好的面包屑组件,然后在页面中使用该组件。最后使用 Switch 组件来对路由进行匹配和渲染。

总结

以上就是在 ReactJS 中使用面包屑组件的详细介绍了。通过以上步骤,可以很容易地实现一个简单的面包屑组件。