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-router-dom v6版本基本使用介绍

    详解react-router-dom v6版本基本使用介绍

    本文主要介绍了react-router-dom v6版本基本使用介绍,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • React避免不必要的重新渲染的方法示例

    React避免不必要的重新渲染的方法示例

    构建高性能 React 应用程序的关键之一是避免不必要的重新渲染,React 的渲染引擎是高效的,但防止在不需要的地方重新渲染仍然至关重要,在这篇文章中,我们将介绍常见错误以及如何避免它们,需要的朋友可以参考下
    2024-10-10
  • 解决React报错Functions are not valid as a React child

    解决React报错Functions are not valid as 

    这篇文章主要为大家介绍了React报错Functions are not valid as a React child解决详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • 比ant更丰富Modal组件功能实现示例详解

    比ant更丰富Modal组件功能实现示例详解

    这篇文章主要为大家介绍了比ant更丰富Modal组件功能实现示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • 可定制React自动完成搜索组件Turnstone实现示例

    可定制React自动完成搜索组件Turnstone实现示例

    这篇文章主要为大家介绍了可定制React自动完成搜索组件Turnstone实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10
  • React渲染的优化方案

    React渲染的优化方案

    react的渲染机制是非常独特的,有别于 Vue 框架的渲染次数的优化计算,React 很久以来就有PureComponent、shouldUpdate,本文小编给大家介绍了React渲染的优化方案,需要的朋友可以参考下
    2024-08-08
  • react ant-design Select组件下拉框map不显示的解决

    react ant-design Select组件下拉框map不显示的解决

    这篇文章主要介绍了react ant-design Select组件下拉框map不显示的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • 详解react-refetch的使用小例子

    详解react-refetch的使用小例子

    这篇文章主要介绍了详解react-refetch的使用小例子,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-02-02
  • React中实现防抖功能的两种方式小结

    React中实现防抖功能的两种方式小结

    这篇文章主要介绍了React中实现防抖功能的两种方式小结,具有很好的 参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10
  • React自定义Hook-useForkRef的具体使用

    React自定义Hook-useForkRef的具体使用

    本文主要介绍了React自定义Hook-useForkRef的具体使用,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03

最新评论