首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

带有class='active‘的属性"aria-current='page'“即使在单击其他链接之后也不会从第一个NavLink中消失

带有class='active'属性"aria-current='page'"的NavLink是React Router中的一个组件,用于在导航栏中标记当前活动页面。当用户单击其他链接时,该活动页面的标记不会消失,仍然保持在导航栏中。

这个功能在网站或应用程序中非常有用,可以帮助用户清晰地知道他们当前所处的页面,提供更好的导航体验。

在React Router中,可以通过设置NavLink组件的属性来实现这个功能。具体的属性如下:

  • to:指定导航链接的目标路径。
  • exact:指定是否需要精确匹配目标路径。如果设置为true,则只有当目标路径与当前路径完全匹配时,才会被视为活动页面。
  • isActive:一个函数,用于自定义判断是否为活动页面的逻辑。如果返回true,则表示当前页面为活动页面。

以下是一个示例代码,展示了如何使用带有class='active'属性"aria-current='page'"的NavLink:

代码语言:txt
复制
import { NavLink } from 'react-router-dom';

const Navigation = () => {
  return (
    <nav>
      <ul>
        <li>
          <NavLink exact to="/" activeClassName="active" aria-current="page">
            Home
          </NavLink>
        </li>
        <li>
          <NavLink exact to="/about" activeClassName="active" aria-current="page">
            About
          </NavLink>
        </li>
        <li>
          <NavLink exact to="/contact" activeClassName="active" aria-current="page">
            Contact
          </NavLink>
        </li>
      </ul>
    </nav>
  );
};

export default Navigation;

在上述代码中,我们使用了NavLink组件,并设置了activeClassName属性为"active",aria-current属性为"page"。当当前页面与NavLink的目标路径匹配时,该NavLink会自动添加class为"active"的属性,并且设置aria-current属性为"page",从而实现了在活动页面上保持标记的效果。

腾讯云提供了一系列的云计算产品,其中与React Router类似的产品是腾讯云的Serverless Framework。Serverless Framework是一个开发框架,可以帮助开发者更轻松地构建、部署和管理无服务器应用程序。您可以通过以下链接了解更多关于腾讯云Serverless Framework的信息:腾讯云Serverless Framework

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Blazor学习之旅(6)路由系统

    ,但你可以呈现更复杂的 HTML。例如,可能包括指向主页或站点管理员联系人页面的链接。 使用@page指令 在 Blazor 组件中,@page 指令指定该组件应直接处理请求。...组件 在 Blazor 中,使用 NavLink 组件来呈现标记,因为它在链接的 href 属性与当前 URL 匹配时将切换 active CSS 类。...通过设置 active 类的样式,可以让用户清楚地了解当前页面对应哪个导航链接。...组件中的 Match 属性用于管理突出显示连接的时间,它有两个选项: NavLinkMatch.All:使用此值时,只有在链接的 href 与当前 URL 完全匹配时,该链接才突出显示为活动链接。...使用路由参数 在日常开发中,有时候希望将URI中的其他部分用作呈现的页面中的值,例如:http://edtalk.com/favoritestar/jaychou。

    33220

    【React】React-router的使用记录

    当匹配到/hello时,如果还有/hello/hello路径的话,也会继续匹配 解决办法也很简单,使用Swtich组件即可 也即,在Route上再包一层Switch <Route...Link 说完基本的路由后,需要认识“导航链接” 基本理解就是通过导航链接跳转到相应路由,毕竟你不会让用户自行在浏览器地址上输入相应的URI吧? 简单理解,就是一个a标签罢了!...导航1NavLink> 导航2NavLink> 有一个基本属性,就是to,也即要导航到的路径 ---- NavLink Link...一般情形下,如果使用NavLink的话,会自动添加一个名为active的class,如果要自定义,那么给NavLink添加要给属性即可:activeClassName NavLink to="/hello...sort=name", hash: "#the-hash", state: { fromDashboard: true } }} /> 其中state就是你要隐形传递的数据,这里的数据时不会显示在地址栏或者哪里的

    1.8K10

    04-React路由5版本(高亮, 嵌套, 参数传递... )

    +Route 和Link功能一样, 但是会在点击的时候自动追加和移除一个class,那就是active, 可以通过属性activeClassName修改 .active { background-color...组件中继续使用NavLink+Route注册路由, 但是需要携带前缀, 并且在外部不能开启精准模式,不然会造成匹配不到的情况,二级路由也可以使用Redirect实现默认选中 路由组件传递参数[params..., 也可以使用querystring的方法, 当热这个库在React18之后已经被弃用了, 本来我也想试一下的,但是发现不行 调用直接报错 应该是已经没有依赖了, 可以自己安装一下, 我就不安装了..., 所以不会留下痕迹, 也就不能通过back,go完成前进和后退 修改方式为, 增加replace属性 编程试路由导航 <Link replace to={{ pathname: '/home/messages...路由组件与一般组件 # 直接使用定义的组件 就是一般组件 渲染时props中不会有默认路由组件的三大对象 # 通过路由跳转的组件 就是路由组件 渲染时props中会携带 history

    1.1K20

    如何遍历DOM

    href属性来更改链接的地址: navLink.href = 'https://github.com/qq449245884/xiaozhi'; 我们还可以通过textContent属性来更改文本内容:...DOM由嵌套节点的树结构组成,通常称为DOM树。 我们知道祖先的家谱,该谱系由父母,孩子和兄弟姐妹组成。 DOM中的节点也称为父级,子级和同级,具体取决于它们与其他节点的关系。...-- an HTML comment --> 在 Developer Tools 的Elements选项卡中,你可能会注意到,每当单击并突出显示DOM中的任何一行时,它旁边就会出现== 0的值。...回到index.html文件,添加一个带有id的button元素,并新建 script.js 引入其中。 JS 中的事件是用户所做的动作。...当用户将鼠标悬停在一个元素上,或单击一个元素,或按下键盘上的一个特定键时,这些都是事件类型。在这个特殊的例子中,我们希望我们的按钮侦听并准备在用户单击它时执行操作。

    9K30

    Jump Start Bootstrap 第4章

    现在,我们有了一个简单的下拉菜单,在单击链接时显示菜单。我们可以在浏览器中查看它,如图所示。 ? 让我们结合使用下拉式插件和我们在前一章中创建的标签和按钮菜单。...nav-tabs组件中的每个链接都应该有一个data-toggle=”tab”属性。这允许引导程序将单击事件映射到相应的选项卡窗格。这些链接中的href属性应该包含相应的选项卡窗格的id。...选项卡窗格的数量应该等于显示在导航栏中的链接数。在nav-tabs包裹的一个元素中添加一个类”active”,将使它成为默认选项卡。 就是这样!你有了一个可以工作的选项卡插件。...因此,第一个包裹体同时拥有collapse和in来显示完整的内容,其他包裹体内只应该包含collapse。...在Bootstrap 3版本,modals已经变得有响应性;这意味着它们看起来很好,即使在小屏幕上也能运行良好。

    28.4K40

    React Router V6详解

    hash是location 对象的属性,它指的是当前链接的锚,也就是从【#】号开始的部分。 不过,虽然SPA有它的优点,也得到了主流框架的支持,但它也存在一定的局限性。...Link不再支持component属性; NavLink 的exact属性替换为end; 添加Outlet组件,用于渲染子路由; 使用之前,可以先使用下面的命令进行安装。...中,Link被渲染为有真实href的标签,同时,Link to 支持相对路径路由; NavLink:有“active”标的Link,尝被用于导航栏等场景; Navigate:可以理解为被useNavigate...元素; resolvePath:将Link to的值转为带有绝对路径的真实的path对象; 参考链接:https://reactrouter.com/en/6.6.1/docs/en/v6/routers...; Parent Route:带有子路由的父路由节点; Outlet: 匹配match中的下一个匹配项的组件; Index Route :当没有path时,在父路由的outlet中匹配; Layout

    7.9K50

    利用Python开发七普数据在线可视化看板

    2.2.2 在server.py中实例化配置Dash对象 跟以往的例子不同,在严谨的Dash工程下,推荐构建单独的server.py文件来完成对Dash对象的实例化配置等工作,在今天的可视化看板案例中server.py...中编写前端骨架与路由 如果你的Dash项目非常简单,那么from server import app之后,就可以像往常一样在app.py中组织你的前端与回调部分内容。...('首页', href='/', active="exact"), dbc.NavLink('年龄结构', href='/age', active="exact...2.2.4 在views子模块中构建多页面前端内容 在上一小节的路由回调中你可能会好奇不同url下的返回值index_page、age_page等都是什么,这些都构建在「子模块」views下: + views...import sex_page from views.statistics import statistics_page 2.2.5 在callbacks子模块中构建多页面后端逻辑 当你在views

    1.5K30

    使用 TypeScript 编写 React.js 应用 | 笔记

    更改窗体中的项目名称 单击表单上的保存按钮 验证卡片是否显示更新的数据 刷新浏览器 验证项目是否仍处于更新状态 注意: 更新后卡片会被排到最后, 目前没有在代码中排序 错误推断, 发现并不对, db.json...可以将任何 标记改为 NavLink> ,并添加 to 属性以设置 href 。...测试 通过以下步骤验证路由是否正常工作: 访问站点的根目录: http://localhost:3000/ 并在浏览器中刷新页面 单击导航中的 Projects 验证你是否被带到 /projects...测试 通过以下步骤验证新路由是否正常工作: 访问站点的根目录: http://localhost:3000/ 并在浏览器中刷新页面 单击导航中的 Projects 验证你是否被带到 /projects...'createStore' is deprecated 参考: Redux createStore() 已弃用 - 在 Redux 操作中无法从 getState() 获取状态答案 - 爱码网 Redux

    87990

    React 路由详解(超详细详解)

    2.整个应用只有一个完整的页面。 3.点击页面中的链接不会刷新页面,只会做页面的局部更新。 4.数据都需要通过ajax请求获取, 并在前端异步展现。...与封装NavLink 1.NavLink可以实现路由链接的高亮,通过activeClassName指定样式名 2.标签体内容是一个特殊的标签属性 3.通过this.props.children可以获取标签体内容...使用 Link 是会有一些问题的, 他不会显示按钮的高亮显示, 所以我使用 NavLink 来替代它 App.js文件修改的代码 { /* 在React中靠路由链接实现切换组件 */} 的封装 因为在 App.js 文件中写 NavLink 太长了, 所以我们这里把 NavLink 单独提出来写 MyNavLink 一个组件, 使用时在写他, 可以使代码更加简洁 MyNavLink组件代码...{ /* 在React中靠路由链接实现切换组件 */} Home About<

    5.7K20

    无废话快速上手React路由

    One 的二级路由路径匹配必须要写 /home/one ,而不是 /one ,不要以为 One 组件看似在 Home 组件内就可以简写成 /one 动态链接 NavLink可以将当前处于active状态的链接附加一个...路由传参 所有路由传递的参数,都会在跳转路由组件的 props 中获取到,每种传参方式接收的方式略有不同 路由传参的方式一共有三种,依次来看一下 第一种 第一种是在 Link 组件的跳转路径上携带参数,...可以看到,第一种方式的参数是通过 props.match.params 来获取的 第二种 第二种方式就是通过在 Link 组件的跳转链接后面跟上以 ? 开头,类似 ?...,组件的 props 属性中是否有下图所示的内容:(前者有,后者无) ?...通过withRouter方法对普通组件做一层包装处理 补充 replace 在函数式路由里跳转类型主要有两种,分别是 push 和 replace,那么在非函数式路由中,同样也可以自定义跳转类型,具体的实现代码如下

    1.8K20

    (数据科学学习手札121)Python+Dash快速web应用开发——项目结构篇

    2.2.2 在server.py中实例化配置Dash对象   跟以往的例子不同,在严谨的Dash工程下,推荐构建单独的server.py文件来完成对Dash对象的实例化配置等工作,在今天的可视化看板案例中...中编写前端骨架与路由   如果你的Dash项目非常简单,那么from server import app之后,就可以像往常一样在app.py中组织你的前端与回调部分内容。   ...('首页', href='/', active="exact"), dbc.NavLink('年龄结构', href='/age', active="exact...2.2.4 在views子模块中构建多页面前端内容   在上一小节的路由回调中你可能会好奇不同url下的返回值index_page、age_page等都是什么,这些都构建在子模块views下: + views...import sex_page from views.statistics import statistics_page 2.2.5 在callbacks子模块中构建多页面后端逻辑   当你在views

    1.5K20

    结合 Bootstrap + Vue 组件实现 Laravel 异步分页功能

    ="page-item active" aria-current="page" v-if="page == paginator.current_page">...关于 Vue 组件的基本结构,我们在编写第一个Vue组件教程中已经讨论过,这个分页组件比我们之前编写的 Vue 组件都要复杂一些,我们在这个组件中应用了更多的 Vue 特性,包括从父视图中传入属性,定义模型属性...使用prop传递属性 我们在父视图中声明组件的时候传递了一个属性 page-type 到组件,用于标识该组件应用的页面类型,然后在组件中,我们可以通过 props 声明从父视图/组件中传递进来的属性(转化为驼峰格式...动态设置组件模型属性 我们可以将组件用到的动态数据设置为模型属性,这些属性值发生变更后会实时更新引用它的视图元素,反之视图元素输入值的变更也会同步到模型属性,这称之为双向绑定,通过这个特性可以大大提高编写客户端代码的效率...通过列表渲染显示分页数据和链接 在设置好 paginator 和 elements 属性值之后,就可以在模板中通过列表渲染和动态绑定显示文章信息和分页信息了,具体可以查看 template 标签中的代码

    7.4K20
    领券