当前位置:首页 > React

react 导航active实现

2026-01-26 20:43:58React

实现 React 导航 Active 状态的方法

使用 React Router 的 NavLink 组件
React Router 提供了 NavLink 组件,可以自动为当前匹配的路由添加 active 类名。通过 activeClassNameclassName 函数自定义样式:

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

<NavLink 
  to="/home" 
  className={({ isActive }) => isActive ? 'active' : ''}
>
  Home
</NavLink>

手动判断路径匹配
通过 useLocation 获取当前路径,与导航项的路径比较后动态添加类名:

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

const location = useLocation();
<Link 
  to="/about" 
  className={location.pathname === '/about' ? 'active' : ''}
>
  About
</Link>

使用 CSS Modules 或 Styled Components
结合 CSS Modules 或样式库实现高亮效果:

// CSS Modules
import styles from './Nav.module.css';
<NavLink to="/contact" className={({ isActive }) => isActive ? styles.active : ''} />

// Styled Components
const StyledLink = styled(NavLink)`
  &.active { color: red; }
`;

自定义 Hook 封装逻辑
抽象 active 判断逻辑为可复用的 Hook:

const useActivePath = (path) => {
  const location = useLocation();
  return location.pathname === path;
};

const isActive = useActivePath('/products');
<Link to="/products" className={isActive ? 'active' : ''} />

注意事项

  • 精确匹配需配置 end 属性:<NavLink to="/" end>
  • 嵌套路由需处理路径前缀匹配逻辑
  • 动态路由需使用 pathname.startsWith() 等方法判断

react 导航active实现

标签: reactactive
分享给朋友:

相关文章

react native 如何

react native 如何

React Native 开发基础 React Native 是一个用于构建跨平台移动应用的框架,允许开发者使用 JavaScript 和 React 编写代码,同时生成原生 iOS 和 Androi…

如何降低react版本

如何降低react版本

降低 React 项目版本的步骤 检查当前 React 版本 运行以下命令查看项目中安装的 React 当前版本: npm list react 或 yarn list react 修改…

react如何更新

react如何更新

更新 React 版本的方法 检查当前 React 版本 运行以下命令查看项目中安装的 React 版本: npm list react 更新 React 及相关依赖 通过 npm 或 yarn…

如何改造react

如何改造react

改造 React 项目的关键方法 分析当前项目结构 通过评估现有组件、状态管理和依赖项,明确需要改进的部分。使用工具如 webpack-bundle-analyzer 识别性能瓶颈。 升级 Reac…

react如何查

react如何查

React 查询方法 React 提供了多种查询 DOM 元素的方式,以下是几种常见的方法: 使用 ref 通过 useRef 钩子可以获取 DOM 节点的引用,适用于直接操作 DOM 的场景。…

react如何收录

react如何收录

React 收录方法 React 的收录主要涉及搜索引擎优化(SEO)和预渲染技术。由于 React 是单页应用(SPA),默认情况下内容由 JavaScript 动态生成,可能导致搜索引擎爬虫难以收…