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

在Navlink上处于活动状态时渲染不同的组件

在React中,可以使用NavLink组件来创建导航链接,并且在当前页面处于活动状态时,可以渲染不同的组件。

NavLink是React Router库中的一个组件,用于创建带有活动状态的导航链接。它继承自React Router中的Link组件,并添加了一些额外的功能。

使用NavLink组件,可以通过设置activeClassName属性来指定活动状态时的样式类名。当当前页面的URL与NavLink的to属性匹配时,NavLink会自动为其添加该样式类名,从而可以通过CSS样式来区分活动状态。

以下是一个示例代码:

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

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

在上面的代码中,我们创建了一个导航栏,其中包含了三个NavLink组件。每个NavLink都有一个to属性,用于指定导航链接的目标URL。同时,我们还设置了activeClassName属性为"active",表示活动状态时的样式类名。

当用户点击某个导航链接并且导航到对应的页面时,React Router会自动为该NavLink添加activeClassName指定的样式类名,从而可以通过CSS来修改该链接的样式,以示活动状态。

推荐的腾讯云相关产品和产品介绍链接地址:

  • 腾讯云服务器(CVM):提供弹性计算能力,满足各类业务需求。产品介绍链接
  • 腾讯云云数据库 MySQL 版:可扩展、高可用的关系型数据库服务。产品介绍链接
  • 腾讯云对象存储(COS):安全、稳定、高扩展性的云端存储服务。产品介绍链接
  • 腾讯云人工智能(AI):提供丰富的人工智能服务,如图像识别、语音识别等。产品介绍链接
  • 腾讯云物联网(IoT):为物联网设备提供连接、管理和数据处理能力。产品介绍链接

请注意,以上链接仅供参考,具体的产品选择应根据实际需求和情况进行评估和决策。

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

相关·内容

React Router初学者入门指南(2023版)

然后, App 组件内部, Routes 组件限制了不同 Route 组件。 第一个路由路径设置为("/"),当访问渲染 Home 组件。这个默认路由将始终访问根URL渲染。...它类似于 Link ,但主要用于处理菜单导航链接,不同于 Link 组件,后者可用于任何类型链接。 NavLink 和 Link 之间主要区别是 NavLink 能够检测自身是否处于活动状态。...当 NavLink 检测到自身处于活动状态,默认会给其组件添加一个 active 类。...嵌套路由使用一个 Route 组件作为父路由,另一个 Route 组件用于定义父路由内子路由。因此,只有父路由才能渲染子路由。...基本, useParams hook 返回一个包含来自 Route 组件动态值对象,该值可以负责渲染动态内容组件中使用。

56731
  • 无废话快速上手React路由

    One 二级路由路径匹配必须要写 /home/one ,而不是 /one ,不要以为 One 组件看似 Home 组件内就可以简写成 /one 动态链接 NavLink可以将当前处于active状态链接附加一个...路由传参 所有路由传递参数,都会在跳转路由组件 props 中获取到,每种传参方式接收方式略有不同 路由传参方式一共有三种,依次来看一下 第一种 第一种是 Link 组件跳转路径携带参数,...并在 Route 组件匹配路径通过 :参数名 方式接收参数,代码如下: import { BrowserRouter as Router, Route, NavLink, Switch...例如 go(-3) 相当于调用了三次 goBack 方法 当参数为 0 ,表示刷新当前页面 普通组件使用路由 这里区分两个概念,分别为 普通组件 和 路由组件 通过 Route 组件渲染组件为路由组件...图中看出,因为跳转 /home/abc ,第一个 Route 组件是模糊匹配,所以先匹配到了 /home,因此 Home 组件渲染了 ; 而跳转 /about/abc ,第二个 Route 组件是精准匹配

    1.8K20

    React 进阶 - React Router

    ,也需要容器组件通过路由更新,来渲染视图 History 核心基础,增加了 Router ,Switch ,Route 等组件来处理视图渲染 React-Router-DOM React-Router...基础,增加了一些 UI 层面的拓展比如 Link ,NavLink React-Router 基础,增加了两种模式根部路由 BrowserRouter ,HashRouter # history...context 改变,会使消费 context 组件更新,触发路由改变,重新渲染匹配组件 props.history 是通过 BrowserRouter 或 HashRouter 创建 history...改变带来更新作用 Route Route 是整个路由核心部分,主要工作: 匹配路由,路由匹配,渲染组件 路由状态是用 context 传递,所以 Route 可以通过 RouterContext.Consumer...# 应用实践 # 路由状态获取 路由组件 props 被 Route 包裹路由组件 props 中会默认混入 history 等信息,那么如果路由组件组件也想共享路由状态信息和改变路由方法,那么

    1.9K21

    React NavLink使用

    NavLink概述NavLink是react-router-dom库中一个特殊导航链接组件,它可以帮助我们React应用程序中创建导航链接,并根据当前活动URL自动添加活动链接样式。...使用NavLink组件,我们可以轻松创建具有活动状态样式导航链接,并为用户提供更好导航体验。...然后,导航栏中,我们使用NavLink组件创建了三个导航链接:Home、About和Contact。每个NavLink组件中,我们通过to属性指定链接目标URL。...我们还通过activeClassName属性指定了活动链接样式名称,这里我们使用了active作为样式名称。当链接与当前URL匹配NavLink会自动将该样式应用于活动链接。...请注意,我们Home链接中使用了exact属性,这表示只有URL精确匹配才应用活动样式。这可以避免部分匹配链接错误地被激活。

    1.4K10

    React Router 邦邦两拳🥊 🥊

    ---- 这是我参与11月更文挑战第16天,活动详情查看:2021最后一次更文挑战」 简介 React Router 是一个基于 React 之上强大路由库,它可以让你向应用中快速地添加视图和数据流...path2'); 导航栏 传统 不使用react或Vue这种脚手架框架之前。我之前写过boostarp导航栏,左侧导航栏是要在每个文件中都写一次。然后选中那页tab状态样式是选中样式。.../>} /> // 新版本 6.v 和渲染 会搜索其子元素,然后根据子元素路径找到匹配组件。...导航 Link Link组件用于取代元素,生成一个链接,允许用户点击后跳转到另一个路由。它基本就是元素React 版本,可以接收Router状态。...简而言之,一个 history 知道如何去监听浏览器地址栏变化, 并解析这个 URL 转化为 location 对象, 然后 router 使用它匹配到路由,最后正确地渲染对应组件

    3.4K20

    React-Router-基本使用

    什么是路由路由维护了 URL 地址和组件映射关系, 通过这个映射关系, 我们就可以根据不同 URL 地址,去渲染不同组件。...作用:用于修改 URL 资源地址Route 作用:用于维护 URL 和组件之间关系Route 是一个占用组件, 将来它会根据匹配到资源地址渲染对应组件案例需求,界面上有两个按钮, 点击不同按钮显示不同组件...a 标签如果想渲染成其他元素, 可以通过手动路由跳转来实现(后续文章嵌套路由介绍)NavLink除了 Link 可以修改资源地址外,还可以通过 NavLink 修改,也是可以。...NavLink 匹配资源地址, 是模糊匹配如果必须和资源地址一模一样才匹配, 那么需要添加 exact 属性, 开启精准匹配当前资源地址: /home/aboutto 中地址: /hometo 中地址...也就是说,浏览器路径当中如果是 home/about 下方页面,会渲染出两个组件分别是 home 与 about 组件

    25120

    React路由基本用法

    和react-router区别: 它们之间不同之处就是react-router-dom比react-router多出了 这样组件; 3.react-router-dom...而BrowserRouter使用了H5 Histroy API高阶路由组件; 2.组件:它作用是只渲染出第一个与当前访问地址匹配组件; 3....组件:当地址URL和path属性设置值匹配渲染出相应UI组件界面; 4....组件:它作用主要利用Hash值原理进行地址—UI匹配,RR4中并没有抛弃,但是不建议使用;熟悉vue-router可以知道,它跟vue-router匹配原理一样; 5....组件:主要用于导航拥有激活状态准备;它和Link路由匹配效果一致;不同NavLink状态标记,Link无状态标记,如下面效果实现就建议使用NavLinkNavLink用法如下

    1.5K30

    08-React路由6.3.0(高亮, 嵌套, 参数传递... )

    6.3.0 Component Routes 使用Routes组件替换Switch组件, Route使用时外部必须包裹Routes element Route组件使用element属性替换了component...属性完成组件渲染 }/> Navigate 使用Navigate组件替换了Redirect组件完成重定向功能 # 方式一...: '10px'}}>message {/* 指定路由组件呈现位置 */} <Outlet..., 是就返回true, 否则返回false, 被BrowserRouter包裹里面的就是处于 useNavigationType 返回当前导航类型(用户是通过什么方式跳转到当前页面的) 返回值: POP...: 刷新页面来到, 或者回退 PUSH: 压栈方式 REPLACE: 替换栈顶 useOutlet 用来呈现当前组件渲染嵌套路由 如果嵌套路由没有挂载,就返回Null, 否则展示嵌套路由对象

    1.3K20

    React-Router 5.0 制作导航栏+页面参数传递

    NavLink> 组件3 以上代码已经实现了一个基本导航 示例: ?...导航代码剖析 BrowserRouter 和 HashRouter已经介绍过了 两种url不同展现形式 定义路由使用了三种不同方式: 指定component对应组件组件作为子组件 对router...,匹配到一个Route就不会往下匹配了 Route组件: 如果Route没用指定path 只要匹配不到path都会渲染这个组件 可以用这个增加用户体验 实现一个友好404页面 exact属性 严格匹配路由...A链接 一种封装 但是使用场景不太一样 如果选择导航栏时候使用NavLink非常合适 因为他直接提供activeStyle等属性 直接聚焦在这个组件style会应用给组件...       重定向跳转 Route            路由分配 哪个path对应哪个路由 exact      严格匹配 component  指定渲染组件 Prompt

    3.5K10

    React路由 及 React 路由中核心组件

    重新执行, 丢失状态....SPA单页面应用: Single Page Application : 单页面应用,整个应用只加载一个页面(入口页面),后续与用户交互过程中,通过 DOM 操作在这个单页动态生成结构和内容...SPA 页面切换机制: ​ 虽然 SPA 内容都是一个页面通过 JavaScript 动态处理,但是还是需要根据需求不同情况下分内容展示,如果仅仅只是依靠 JavaScript 内部机制去判断...这样把不同 URL 与 JavaScript 对应逻辑进行关联方式就是路由,其本质与后端路由思想是一样。...同时根据 Route 中设置把对应组件显示指定位置 to 属性 to 属性类似 a 标签中 href NavLink 组件 NavLink 与 Link 类似,但是它提供了两个特殊属性用来处理页面导航

    1.4K20

    react基础--1

    render函数如何执行 要调用render肯定要实例化类组件,可是代码中并没有实例化类组件代码 原因在与,当写入组件标签,react帮你实例化了类组件 执行 ReactDOM.render发生了什么...1.react解析组件标签,找到了组件 2.发现组件是函数定义,随后调用该函数,将返回虚拟DOM转换为真实DOM,随后展示页面中 3.发现组件是类定义随后,new出该类实例,并通过该实例调用原型...上述代码标题被点击时候,抛出异常 Cannot read property 'state' of undefined 不能在undefine读取state属性 changeWeather打印this...onClick,所以函数页面加载就执行了,接着将undefined作为onClick回调 纠正 ......APP用BrowserRouter 包裹 ** 路由组件收到props是 history、location、match 点击导航有状态,如高亮,使用可以使用NavLink NavLink 将Link替换为

    75330

    一文带你梳理React面试题(2023年版本)

    setState会被合并为1次执行,提高了性能,在数据层,将多个状态更新合并成一次处理(视图层,将多次渲染合并成一次渲染)引入了新root API,支持new concurrent renderer...react17中,返回空组件只能返回null,显式返回undefined会报错react18中,支持null和undefined返回strict mode更新当你使用严格模式,React会对每个组件返回两次渲染...设计思想组件化每个组件都符合开放-封闭原则,封闭是针对渲染工作流来说,指的是组件内部状态都由自身维护,只处理内部渲染逻辑。...路由器Route 路由匹配Link 链接,html中是个锚点NavLink 当前活动链接Switch 路由跳转Redirect 路由重定向Home<NavLink...演员需要切换不同场景,以一个一小话剧来说,舞台中切换场景,时间来不及。

    4.3K122

    React Router V6详解

    相比于传统Web应用,SPA一个最重要特性就是改变路由不会触发整个页面的刷新,只会刷新需要刷新模块或组件。...Link不再支持component属性; NavLink exact属性替换为end; 添加Outlet组件,用于渲染子路由; 使用之前,可以先使用下面的命令进行安装。...Dynamic Segment:动态路径匹配; URL Params: 动态段匹配URL解析值; Router :使所有其他组件和hooks工作状态最高层组件; Route Config:将当前路径进行匹配...; Parent Route:带有子路由父路由节点; Outlet: 匹配match中下一个匹配项组件; Index Route :当没有path父路由outlet中匹配; Layout...history object,这些React Router底层实现了,React Router提供监听history stack变化,最终URL变化时更新其状态,并重新渲染

    7.9K50

    react进阶用法完全指南

    portals使用 portals存在意义在于,有时候我们想要一个组件独立于父组件进行渲染,例如这样一个场景:父组件显示区域比较小,但是我们想要一个组件显示屏幕中间,此时就可以使用portals...Hook出现之前,函数式组件相对于class组件有如下劣势: class组件可以定义自己状态,函数式组件不可以。...class组件有自己生命周期,函数式组件则会每次重新渲染都重新发送一次网络请求。 函数式组件重新渲染整个函数都会被执行。...class组件this指向比较复杂,难以理解。 组件复用状态难。例如我们使用Provider、Consumer来共享状态,但是多次使用Consumer,我们代码就会存在很多嵌套。...Link和NavLink 一般路径跳转使用Link组件,其最终会被渲染成a元素。 NavLinkLink基础增加一些样式属性。 to属性,指定跳转到路径。

    6K30

    React组件设计实践总结04 - 组件思维

    官方’动机‘就说了: 很难组件之间复用状态逻辑: 问题: React 框架本身并没有提供一种将可复用逻辑注入到组件方式/原语....大多数情况下,组件不应以不同方式处理初始渲染和更新流程。这使它能够适应逻辑变化。 读者可以看一下awesome-react-hooks, 这些开源 hook 方案都挺有意思....传统路由主要用于区分页面, 所以一开始前端路由设计也像后端路由(也称为静态路由)一样, 使用对象配置方式, 给不同 url 分配不同页面组件, 当应用启动, 路由配置表中查找匹配 URL 组件渲染出来...React-Router v4 算是一个真正意义符合组件化思维路由库, React-Router 官方称之为‘动态路由’, 官方解释是”指的是应用程序渲染发生路由,而不是在运行应用程序之外配置或约定中发生路由...匹配显示激活状态 */} 消息 任务

    2.3K20

    从零手写react-router

    时候, 有createBrowserHistory, createHashHistory等 * 所以我们Router里怎么都不能写死, 我们把history作为属性传递过来 * 而在外部我们根据不同组件来创建不同...组件也写完了Route组件实现Route组件主要是用来根据不同路径匹配不同组件, 其实他没那么复杂, 就是通过不同路径来渲染不同组件, 如果你写草率一点, 完全可以使用if else 来一直进行判断也可以写好.../Redirect.js// Redirect组件其实就是用来做重定向, 其实逻辑也可以非常简单, 当你遇到了Redirect组件, 你通过location// replace方法将他去渲染指定路径就行了...时候, 有createBrowserHistory, createHashHistory等 * 所以我们Router里怎么都不能写死, 我们把history作为属性传递过来 * 而在外部我们根据不同组件来创建不同...组件也写完了Route组件实现Route组件主要是用来根据不同路径匹配不同组件, 其实他没那么复杂, 就是通过不同路径来渲染不同组件, 如果你写草率一点, 完全可以使用if else 来一直进行判断也可以写好

    3.1K30

    使用ReactHook和context实现登录状态共享

    实现效果 将登录表单提交后返回登录结,根据登录结果进行保存token以及登录用户信息。 将整个context里状态更新。 路由鉴权 我们可以路由跳转时候添加一个组件进行包裹路由组件。...并且暴露出这个 AppContext好让我们在其他组件里引用这个上下文对象。 结合路由使用 需要全局状态组件里通过,useContext将全局状态拿出来。...下面介绍导航渲染和登录跳转 根据登录状态渲染相应导航: import React,{useContext} from 'react'; import { NavLink } from 'react-router-dom...: 实际是演示一个更改全局状态例子。...所以登录状态全局状态是需要进行保存。 当然,如果是临时状态不保存也ok。 实际需要中,我们不应该多次使用上下文进行传递数据。而应该设计让组件拥有他单独状态

    5.3K40
    领券