React-Router实战:NavLink

2023-11-16

基础:

  • (1)引入使用:
import { NavLink } from 'react-router-dom'
<NavLink to="/about"> About  </NavLink>
  • (2)activeClassName:string
//当被激活时,显示类名为selected 的css样式

<NavLink  to="/about"  activeClassName="selected">
  About
</NavLink>
  • (3)activeStyle:object
// 在元素处于活动状态时应用于该元素的样式。

<NavLink   
		to="/about"
		activeStyle={{ fontWeight: "bold",  color: "red" }}
>
  about
</NavLink>
  • (4)exact: 精确匹配
//仅当url与NavLink里to的值完全相等时,才应用类名为selected的CSS样式

<NavLink exact  to="/about"  activeClassName="selected">
  About
</NavLink>
  • (5)isActive: :function
//用于添加额外逻辑以确定链接是否处于活动状态的功能。
//如果您要做的不仅仅是验证链接的路径名是否与当前URL匹配,那么应该使用此方法

const oddEvent = (match, location) => {
  if (!match) {
    return false
  }
  const eventID = parseInt(match.params.eventID)
  return !isNaN(eventID) && eventID % 2 === 1
}

<NavLink
  to="/events/123"
  isActive={oddEvent}
>Event 123</NavLink>

DOME

目录结构:

目录结构:
		| - index.js
		| - components
			| - App 
				| - App.js
				| - App.css
			| - Home     =>   Home.js
			| - About    =>   About.js

源码:

index.js

import React from 'react';
import ReactDOM from 'react-dom';
import App from './components/App/App';

ReactDOM.render(<App />, document.getElementById('root'));

./components/App/App.js

import React , { Component } from 'react';
import { BrowserRouter as Router, Route, NavLink } from 'react-router-dom';
import Home from '../Home/Home';
import About from '../About/About';
import './App.css';

class App extends Component {
  render() {
    return (
      <Router>
        <div>
          <NavLink activeClassName="test" to="/" exact>Home</NavLink>  <br/>
          <NavLink activeClassName="test" to="/about">About</NavLink>
          <Route path="/" exact component={Home} />
          <Route path="/about" component={About} />
        </div>
      </Router>
    );
  }
}

export default App;

在这里插入图片描述在这里插入图片描述
./components/App/App.css

a {
    background: #000;
    color: #fff;
    text-decoration: none;
}

.test {
    background: red;
}

./components/About/About.js

import React, { Component } from 'react';
export default class About extends Component {
    render() {
        return (
            <div>i am About</div>
        );
    }
}

./components/Home/Home.js

import React, { Component } from 'react';

export default class Home extends Component {
    render() {
        return (
           <div>Home</div>
        );
    }
}

展示:

在这里插入图片描述
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

React-Router实战:NavLink 的相关文章

  • 如何在React-router中手动调用Link?

    我有一个通过 props 接收的组件对象来自反应路由器 每当用户单击此组件内的 下一步 按钮时 我想调用手动对象 现在 我正在使用refs访问支持实例并手动单击 a 标签生成 问题 有没有办法手动调用链接 例如this props next
  • 访问 React Router 历史堆栈

    我有一个应用程序 您可以通过各种方式 搜索 按类别向下钻取等 到达相册列表 从相册中 您可以单击打开单张照片 并使用左 右箭头以及各种编辑工具遍历它们 每个迭代 工具操作都会执行history push 以将路由添加到路由器历史记录中 我正
  • 不变失败:您不应在 之外使用

    I use react router dom用于我的路由React应用 我的应用程序的一部分提取到另一个包中 依赖项列表如下所示 app dashboard package json dependencies app components
  • React Jest/Enzyme 测试:useHistory Hook 破坏测试

    我对 React 还很陌生 所以请原谅我的无知 我有一个组件 const Login FunctionComponent gt const history useHistory extra logic that probably not n
  • React Router v4 - 如何防止重定向循环?

    我想要实现的目标是拥有我的App如果状态的 uid 为 null 则组件重定向到 login 路由 重定向工作正常 如果 uid 为空 它将始终将您重定向到 login 但问题是一旦您进入 login 路线 它就不会停止重定向 抛出的错误是
  • React router v4 - 如何访问通过重定向传递的状态?

    我正在 React 的帮助下制作一个登录页面 当登录成功时 该页面会重定向到另一个页面 让我将登录成功时渲染的组件称为 A 我想将从数据库获取的数据传递给组件 A 我通过将其传递到 重定向 组件的 状态 属性来实现此目的 但是 我不明白如何
  • React 组件安装两次

    在我的 React Redux ReactRouterV4 应用程序的一小部分中 我有以下组件层次结构 Exhibit Parent ExhibitOne ExhibitTwo ExhibitThree 在 Exhibit 的子级中 还可以
  • 如何访问React路由器中的历史堆栈?

    我正在尝试访问反应路由器的历史堆栈 这是我想做的 我使用react js 和react router 创建一个板 如果用户单击板上的列表之一 则会转到详细信息页面 假设用户点击列表中 id 为 3 的文章 react router 会转到
  • 如何在反应中单击按钮将一个组件移动到另一个组件?

    您能告诉我如何在反应中单击按钮时将一个组件移动到另一个组件吗 我得到了react router js来自 cdn 我不知道如何使用这个 js 我想展示second component on button click of第一个组件 这是我的
  • 使用 Django、webpack、reactjs、react-router 解耦前端和后端

    我正在尝试在项目中解耦我的前端和后端 我的前端由以下组成reactjs和路由将完成react router 我的后端如果做成形式Django我计划使用前端对 Django 进行 API ajax 调用 现在我不确定如何让这两端正确地相互通信
  • 在React Router v6中以编程方式重定向到路由时出现问题

    我想对某些用户操作执行导航 例如按钮的 onSubmit 假设用户单击 添加联系人 按钮 我希望反应路由器在主页 中重定向 目前我正面临这个问题 gt TypeError Cannot read properties of undefine
  • React Router v4 基本名称和自定义历史记录

    我想为我的路由分配一个基本名称 我可以使用 BrowserRouter 来实现 不过 我还想指定自定义历史记录 以便我可以以编程方式导航我的用户 我可以用路由器做到这一点 然而我不能两者都做 是否可以扩展其中一个路由器以支持此功能或围绕其包
  • React 路由器匹配失败

    使用有什么好处Match and Miss组件来自react router over Router成分 我似乎找不到任何关于此的文档反应路由器文档 https github com ReactTraining react router tr
  • 将react-route-dom中的语法从“Switch”更改为“Routes”,但浏览器中仍然没有显示

    我正在创建一个 Google 克隆 这是我当前的代码 我读到 考虑到反应路由器的更新 我需要将语法从 Switch 更改为 Routes 我这样做了 但我的 这是搜索页面 没有显示在浏览器内部 import React from react
  • React Router - 如何确定是否按下了后退按钮?

    我有这些场景 设置页面 gt 结果页面 gt 详细信息页面 用户选择设置 单击下一步 获取结果 然后单击查看更多详细信息 详情页 gt 结果页 用户从详细信息页面返回结果页面 这会导致完全重新渲染 导致我毫无意义地再次访问服务器 我将结果存
  • 路由器基本名称无法匹配 URL,因为它不是以基本名称开头

    升级到 React Router v6 后 我的应用程序停止工作 并且我未能找到在版本 6 中实现相同行为的方法 这是我升级到的版本 react router dom 6 2 1 这是与先前版本一起使用的代码5 2 0
  • ReactJs - 是否可以根据组件树的状态设置 url 或查询字符串

    我有一个组件 其中有多个嵌套组件 特别是选项卡 药丸等 任何时候都无法看到所有组件 我希望能够根据 URL 参数 或 URL 设置它们的默认状态 属性 但我不清楚如何在 React 中实现这一点 例如 我有一个带有两个选项卡的组件 引导程序
  • React + 路由器 + Google 标签管理器

    我花了一些时间在 Quickcypher com 上开发 MVP 我想开始进行一些分析 它对于跟踪总访问量非常有用 但是当我尝试跟踪使用 React Router 的网站上的不同 URL 时 情况却出问题了 我的方法是这样的 设置一个在某些
  • React:URL 配置文件 ID 不匹配 (match.params.id)

    所以每当我点击 查看个人资料 链接时 View Profile 它在 URL 中显示了良好配置文件的用户 ID 但每当我单击它以将其与此按钮匹配时 我都会收到错误 const Profile getProfileById match gt
  • React Router 总是将我重定向到不同的 url

    我是 React 和 React Router 的新手 我正在使用 React Router v4 并遵循基于以前版本的教程 但我让它工作了 使用在 SO 上找到的一些东西和 React Router v4 文档上的一些东西 但有一件事困扰

随机推荐

  • 判断一个文件是否为CSV文件的Python代码

    在Python中 我们可以使用os模块的path splitext 函数来获取文件扩展名 然后判断这个扩展名是否为 csv 以下是一个示例代码 import os def is csv file file path file extensi
  • WSL2和Docker for Windows

    文章目录 一 Docker和WSL2概述 二 WSL安装使用 三 基于Docker导入任意WSL分发 参考资料 一 Docker和WSL2概述 Docker 是一个开源的应用容器引擎 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中
  • git中出现“interactive rebase in progress; onto 11dde1e”错误分析与解决方案

    出错原因分析 进行提交前 需提前拉取远程仓库的代码 拉取之后 需要重新add commit 避免仓库的数据被修改 但是再次提交之后会出现上图的错误 原因 是因为你现在正在编辑的提交将要覆盖在 11ddele commited 之前使用过gi
  • 472-I/O阻塞和非阻塞,同步和异步

    阻塞 非阻塞 同步 异步 典型的一次I O的两个阶段是什么 数据准备 和 数据读写 我们作为服务器 接收客户端的请求 得先监听客户端有没有数据过来 这是一个状态 还有就是数据过来了该怎么去读写 这又是一个状态 实际上 阻塞 非阻塞 同步 异
  • 基于51单片机的羽毛球计分器proteus仿真程序设计

    硬件设计 末尾附文件 方案 在像羽毛球这样的竞技比赛中 计分器占着很大的作用 如果我们就只在心里记着双方的比分 显然是不实际的 而且在现在的乒乓球比赛中采用的都是21分制 因此我们不能再用传统的计分方式了 本次课题采用单片机设计了一个羽毛球
  • JetBrains IDE Support 调试工具(页面自动刷新)

    1 谷歌浏览器安装JetBrains IDE Support 插件 2 更改端口 webstorm 和 JetBrains IDE Support 端口不对插件图标会黑 3 debug 4 同步
  • 求定制闲鱼爬虫获取最新发布商品

    闲鱼采集及监控下单软件开发 1 点击宝贝右键打开网页 2 点击宝贝右键拉黑卖家 3 点击宝贝右键清空列表 4 点击宝贝左键显示二维码和主图 5 软件页面显示宝贝二维码 6 软件页面显示宝贝主图 7 软件页面显示检测搜索词及下单宝贝 8 每次
  • 介绍计算机方队,方阵

    f ng zh n 方阵 语音 编辑 锁定 讨论 上传视频 方阵是古代军队作战时采用的一种队形 是把军队在野外开阔地上排列成方形阵式 远古方阵由前军 中军和后军相互嵌套排列而成 方阵平面呈现 回 字形状 反映出远古观念中的一种政治地理结构
  • Java丨JVM虚拟机与类加载器

    一丶JVM 虚拟机介绍 Sun HotSpot VM 这个目前看起来 血统纯正 的虚拟机在最初并非由Sun公司开发 而是由一家名为 Longview Technologies 的小公 司设计的 甚至这个虚拟机最初并非是为Java语言而开发的
  • FPGA图像处理基础----直方图统计

    直方图统计的原理 直方图统计从数学上来说 是对图像中的像素点进行统计 图像直方图统计常用于统计灰度图像 表示图像中各个灰度级出现的次数或者概率 统计直方图的实现采用C C 或者其他高级语言实现十分简单 单采用FPGA来实现直方图的统计就稍显
  • Tensorflow分布式训练

    Tensorflow分布式训练 一 分布式训练模式 1 模型并行 In graph 2 数据并行 Between graph 二 异步 同步训练 1 异步训练 2 同步训练 三 同步更新和异步更新的优缺点 四 分布式机器类型 TODO 1
  • 干货|Pytorch弹性训练极简实现( 附源码)

    点击上方 视学算法 选择加 星标 或 置顶 重磅干货 第一时间送达 作者丨颜挺帅 知乎 已授权 来源丨https zhuanlan zhihu com p 489892744 编辑丨极市平台 导读 作者将以往抽象的分布式训练的概念以代码的形
  • C++11的时间新特性之high_resolution_clock

    转自 https blog csdn net cw hello1 article details 66476290 我在这里只是说一说high resolution clock的时间用法 这里有一个C 的网上的API地址 包含了C 11的新
  • 设计模式之迭代器模式

    迭代器 Iterator 模式的定义 提供一个对象来顺序访问聚合对象中的一系列数据 而不暴露聚合对象的内部表示 迭代器模式是一种对象行为型模式 其主要优点如下 访问一个聚合对象的内容而无须暴露它的内部表示 遍历任务交由迭代器完成 这简化了聚
  • 程序员python表白代码

    python表白代码 源代码如下 coding utf 8 import turtle import time 画爱心的顶部 def LittleHeart for i in range 200 turtle right 1 turtle
  • 3-jeecg-boot前端组件——字段与列表混排的表单处理

    引言 jeecg可以通过formSchema FormSchema 的方式快速定义表单字段 export const formSchema FormSchema label 父级节点 field pid component JTreeSel
  • ESP32-C3 应用程序的启动流程

    网上说明一大堆 基本是官网文档复制没有额外解释 对于ESP32 C3的 risc v 内核 是我选择他的原因之一 了解芯片上电后的启动流程 有利于我们更加深入理解芯片 目录 前言 一 应用程序启动阶段 1 1 app main c 1 2
  • [1215]小米手机USB安装出现当前设备已被临时限制

    小米系列手机 开发者版本 之 USB安装出现当前设备已被临时限制 USB安装出现当前设备已被临时限制 3 2 解决方案 1 更换SIM卡 更换小米账号 2 重新启动手机 即可解决 实战分析 SIM卡数据异常 触发限制代码 3 2 USB安装
  • Uncaught Error: useNavigate() may be used only in the context of a <Router> component.

    出现此问题的原因是因为使用useNavigate的模块没有被react的路由所包围 导致路由并不能在这个层面上使用 解决办法有两种 一 将这个模块被路由模块包围 export default memo gt return
  • React-Router实战:NavLink

    基础 1 引入使用 import NavLink from react router dom