React Router v4是一个用于构建单页面应用程序的React库。面包屑是一种导航元素,用于显示用户当前页面在应用程序中的位置。在React Router v4中创建面包屑可以通过以下步骤实现:
BrowserRouter
、Route
和Link
组件。import { BrowserRouter, Route, Link } from 'react-router-dom';
const routes = [
{ path: '/', component: Home, breadcrumbName: 'Home' },
{ path: '/about', component: About, breadcrumbName: 'About' },
{ path: '/contact', component: Contact, breadcrumbName: 'Contact' },
];
const Breadcrumbs = ({ routes }) => (
<Route
path="*"
render={({ location }) => {
const pathnames = location.pathname.split('/').filter((x) => x);
return (
<div>
{pathnames.length > 0 && (
<ul>
{pathnames.map((pathname, index) => {
const url = `/${pathnames.slice(0, index + 1).join('/')}`;
const route = routes.find((r) => r.path === url);
return (
<li key={url}>
<Link to={url}>{route.breadcrumbName}</Link>
</li>
);
})}
</ul>
)}
</div>
);
}}
/>
);
BrowserRouter
包裹你的应用程序,并将路由配置和面包屑组件传递给Breadcrumbs
组件。const App = () => (
<BrowserRouter>
<div>
<Breadcrumbs routes={routes} />
<Route exact path="/" component={Home} />
<Route path="/about" component={About} />
<Route path="/contact" component={Contact} />
</div>
</BrowserRouter>
);
ReactDOM.render(<App />, document.getElementById('root'));
现在,当用户在应用程序中导航时,面包屑组件将根据当前路由动态生成面包屑导航。
请注意,以上代码示例中的Home
、About
和Contact
组件是你自己定义的组件,根据你的应用程序需求进行替换。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云