NoteZ_技术博客 NoteZ_技术博客
🏠 首页
  • 📚 Web技术
  • 📋 Npm笔记
  • 📑 Markdown
  • 📄 Git笔记
  • 📝 Nginx文档
  • 📓 Linux文档
  • 📖 技术文档
  • 📜 其他文档
  • 🧊 NodeJs
  • 🎡 Express
  • 🔥 Rust
  • 🎉 Koa2
  • 🍃 MongoDB
  • 🐬 MySql
  • 🥦 Oracle
  • 🍁 Python
  • 🍄 JavaScript
  • 🌰 CSS
  • 🧄 HTML
  • 🥑 Canvas
  • 🌽 Nuxt
  • 🍆 React
  • 🥜 Vue
  • 🧅 TypeScript
  • 🌶️ AI
  • 📘 分类
  • 📗 标签
  • 📙 归档
⚜️ 在线编辑 (opens new window)
  • 📁 站点收藏
  • 📦 前端组件库
  • 📊 数据可视化
  • 🌈 开源插件
  • 🎗️ 关于我
  • 🔗 友情链接
GitHub (opens new window)

NoteZ_技术博客

前端界的小学生
🏠 首页
  • 📚 Web技术
  • 📋 Npm笔记
  • 📑 Markdown
  • 📄 Git笔记
  • 📝 Nginx文档
  • 📓 Linux文档
  • 📖 技术文档
  • 📜 其他文档
  • 🧊 NodeJs
  • 🎡 Express
  • 🔥 Rust
  • 🎉 Koa2
  • 🍃 MongoDB
  • 🐬 MySql
  • 🥦 Oracle
  • 🍁 Python
  • 🍄 JavaScript
  • 🌰 CSS
  • 🧄 HTML
  • 🥑 Canvas
  • 🌽 Nuxt
  • 🍆 React
  • 🥜 Vue
  • 🧅 TypeScript
  • 🌶️ AI
  • 📘 分类
  • 📗 标签
  • 📙 归档
⚜️ 在线编辑 (opens new window)
  • 📁 站点收藏
  • 📦 前端组件库
  • 📊 数据可视化
  • 🌈 开源插件
  • 🎗️ 关于我
  • 🔗 友情链接
GitHub (opens new window)
  • JavaScript笔记

  • CSS笔记

  • HTML笔记

  • Canvas笔记

  • Nuxt笔记

  • React笔记

    • React classnames 的使用方法
      • 使用 npm 安装 classnames
      • 基本使用
      • 其他用法
    • React de条件渲染
    • React 中 Hook 使用规则
    • React 中常用的 Hook 使用方法
    • React 元素渲染
    • React 自定义 Hook
    • React_16路由配置方法
    • React中的 State 与 生命周期
    • React中的事件处理
    • React中组件与Props
    • React使用State Hook
    • React技术框架
    • React组合与继承
    • React获取元素动态高度
    • Vue 或 React 中判断图片链接失效加载默认图
    • 受控组件与非受控组件
    • 如何使用Effect Hook
    • 如何将 React 项目部署到 github 的 gh-pages 分支上
    • 浅谈React受控组件与非受控组件
    • 自定义Hooks获取窗口大小
  • Vue笔记

  • TypeScript笔记

  • AI相关笔记

  • 开发文档
  • React笔记
NoteZ
2019-10-09
目录

React classnames 的使用方法

在react开发中,我们有的时候需要使用js来动态判断是否为组件添加class(类名),classnames 可以很好地帮助我们解决这个问题,下面就介绍下classnames的基本使用方法。

# 使用 npm 安装 classnames

npm install classnames --save
1

# 基本使用

import React, { useState } from 'react'
import classnames from 'classnames'

const App = () => {
    const [clickStatus,setClickStatus] = useState(false);

    const boxClick = () =>{
        setClickStatus(!clickStatus);
    };

    return (
        <div className='box'>
            <div className={
              classnames({
                    'box-content': true,
                    'box-content-color': clickStatus,
              })} 
              onClick={boxClick} 
              >
                Hello,Jack!
            </div>
        </div>
    );
}

export default App;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

# 其他用法

classNames('foo', 'bar'); // => 'foo bar'
classNames('foo', { bar: true }); // => 'foo bar'
classNames({ 'foo-bar': true }); // => 'foo-bar'
classNames({ 'foo-bar': false }); // => ''
classNames({ foo: true }, { bar: true }); // => 'foo bar'
classNames({ foo: true, bar: true }); // => 'foo bar'

// lots of arguments of various types
classNames('foo', { bar: true, duck: false }, 'baz', { quux: true }); // => 'foo bar baz quux'

// other falsy values are just ignored
classNames(null, false, 'bar', undefined, 0, 1, { baz: null }, ''); // => 'bar 1'

let arr = ['b', { c: true, d: false }];
classNames('a', arr); // => 'a b c'

let buttonType = 'primary';
classNames({ [`btn-${buttonType}`]: true });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#React
上次更新: 2024/11/25, 15:23:15
如何删掉 Nuxt 中的 window.__NUXT__ 问题
React de条件渲染

← 如何删掉 Nuxt 中的 window.__NUXT__ 问题 React de条件渲染→

最近更新
01
Gitea数据备份与还原
03-10
02
Linux 中使用 rsync 同步文件目录教程
03-10
03
Linux 使用 rsync 互相传输同步文件的简单步骤
03-08
更多文章>
Theme by Vdoing | Copyright © 2019-2025 NoteZ,All rights reserved | 冀ICP备2021027292号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式