React添加或移除类的操作方法

 更新时间:2023年05月24日 10:41:35   作者:火焰兔  
这篇文章主要介绍了React添加或移除类的操作方法,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

useState

在React中,通过点击事件来添加或者移除类:

  • 在元素上设置onClick属性。
  • 将活动状态存储在state变量中。
  • 使用三元操作符有条件的添加类。
import {useState} from 'react';
import './App.css';
export default function App() {
  const [isActive, setIsActive] = useState(false);
  const handleClick = event => {
    // ?️ toggle isActive state on click
    setIsActive(current => !current);
  };
  return (
    <div>
      <button className={isActive ? 'bg-salmon' : ''} onClick={handleClick}>
        Click
      </button>
    </div>
  );
}

下面是示例中的css。

.bg-salmon {
  background-color: salmon;
  color: white;
}

另外,你也可以使用event对象以编程方式添加或删除类。

event

在React中,通过点击事件来添加或者移除类:

  • 在元素上设置onClick属性。
  • 使用event.currentTarget访问DOM元素。
  • 使用classList.add() 或者 classList.remove() 方法。
import './App.css';
export default function App() {
  const handleClick = event => {
    // ?️ toggle class on click
    event.currentTarget.classList.toggle('bg-salmon');
    // ?️ add class on click
    // event.currentTarget.classList.add('bg-salmon');
    // ?️ remove class on click
    // event.currentTarget.classList.remove('bg-salmon');
  };
  return (
    <div>
      <button onClick={handleClick}>Click</button>
    </div>
  );
}

我们在button元素上设置了onClick属性,因此每当元素被点击时,handleClick函数就会被调用。我们可以通过event对象上的currentTarget属性访问元素。

event上的currentTarget属性让我们可以访问事件监听器所连接的元素。而eventtarget属性给了我们一个对触发事件的元素的引用(可以是一个后代)。

toggle

该示例向我们展示了,如何使用classList.toggle 方法来切换类。

event.currentTarget.classList.toggle('bg-salmon');

classList.toggle方法从元素中移除一个现有的类,如果该类存在的话。否则,它会将该类添加到该元素中。如有必要,你可以在toggle() 方法上传递多个类。

event.currentTarget.classList.toggle(
  'bg-salmon',
  'my-class-2',
  'my-class-3',
);

add

如果你需要通过点击事件为元素添加类,可以使用classList.add 方法。

event.currentTarget.classList.add(
  'bg-salmon',
  'my-class-2',
  'my-class-3',
);

如果指定的类已存在于元素上,classList.add() 方法不会重复添加。

remove

如果你需要从元素中移除类,使用classList.remove 方法。

event.currentTarget.classList.remove(
  'bg-salmon',
  'my-class-2',
  'my-class-3',
);

如果元素上不存在指定的类,classList.remove() 方法会忽略该类。否则会从元素的类列表中移除该类。

到此这篇关于React添加或移除类的文章就介绍到这了,更多相关react添加或移除类内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • React合成事件及Test Utilities在Facebook内部进行测试

    React合成事件及Test Utilities在Facebook内部进行测试

    这篇文章主要介绍了React合成事件及Test Utilities在Facebook内部进行测试,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • React diff算法原理详细分析

    React diff算法原理详细分析

    经典的diff算法中,将一棵树转为另一棵树的最低时间复杂度为 O(n^3),其中n为树种节点的个数。假如采用这种diff算法,一个应用有1000个节点的情况下,需要比较十亿次才能将dom树更新完成,显然这个性能是无法让人接受的
    2022-11-11
  • React自定义hooks同步获取useState的最新状态值方式

    React自定义hooks同步获取useState的最新状态值方式

    这篇文章主要介绍了React自定义hooks同步获取useState的最新状态值方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • 解决react-connect中使用forwardRef遇到的问题

    解决react-connect中使用forwardRef遇到的问题

    这篇文章主要介绍了解决react-connect中使用forwardRef遇到的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • React如何避免重渲染

    React如何避免重渲染

    这篇文章主要介绍了React如何避免重渲染,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • React Fiber构建completeWork源码解析

    React Fiber构建completeWork源码解析

    这篇文章主要为大家介绍了React Fiber构建completeWork源码解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • React Native按钮Touchable系列组件使用教程示例

    React Native按钮Touchable系列组件使用教程示例

    这篇文章主要为大家介绍了React Native按钮Touchable系列组件使用教程示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • React实现表单提交防抖功能的示例代码

    React实现表单提交防抖功能的示例代码

    在 React 应用中,防抖(Debounce)技术可以有效地限制函数在短时间内的频繁调用,下面我们就来看看如何使用Lodash库中的debounce函数实现React表单提交中实现防抖功能吧
    2024-01-01
  • React使用hook如何实现数据双向绑定

    React使用hook如何实现数据双向绑定

    这篇文章主要介绍了React使用hook如何实现数据双向绑定方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • React TypeScript 应用中便捷使用Redux Toolkit方法详解

    React TypeScript 应用中便捷使用Redux Toolkit方法详解

    这篇文章主要为大家介绍了React TypeScript 应用中便捷使用Redux Toolkit方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11

最新评论