classNames库

简介

根据名称应该就可以猜想到这个库肯定跟class类名有关,实际上也确实是这样滴😆
那么我们为什么会用到这个库呢,请看下面👇
1、动态添加类名很容易出错;
2、代码比较简洁,一目了然;

用法区别
  • 不使用classNames
import React, { Component } from 'react';
class App extends Component {
    state = {
        class1:true,
        class2:true
    };
    render() {
        const {class1,class2} = this.state;
        let divClass='class-test';
        divClass = class1 ? 'class-test-class1' : ' ';
        divClass = class2 ? 'class-test-class2' : ' ';
        return (
            <div className={divClass}>test</div>
        );
    }
}

export default App;
  • 使用classNames
import React, { Component } from 'react';
import classNames from 'classnames';
class App extends Component {
    state = {
        class1:true,
        class2:true
    };
    render() {
        const {class1,class2} = this.state;
        let divClass=classNames({
              class-test-class1:class1,
              class-test-class2:class2
        })
        return (
            <div className={divClass}>test</div>
        );
    }
}

export default App;
classNames用法详解
  • 安装
cnpm install classnames --save
  • 使用
classNames('class1', 'class2'); // => 'class1 class2'
classNames('class1', { class2: true }); // => 'class1 class2'
classNames({ 'class1-class2': true }); // => 'class1-class2'
classNames({ 'class1-class2': false }); // => ''
classNames({ class1: true }, { class2: true }); // => 'class1 class2'
classNames({ class1: true, class2: true }); // => 'class1 class2'
classNames('class1', { class2: true, duck: false }, 'baz', { quux: true }); // => 'class1 class2 baz quux'
classNames(null, false, 'class2', undefined, 0, 1, { baz: null }, ''); // => 'class2 1'
  • 传入动态class
let btn = 'primary';
classNames({ [`btn-${btn}`]: true }); // btn-primary
参考资料

官方文档

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、为什么使用classnames这个库 在react开发中,我们有的时候需要使用js来动态判断是否为组件添加cl...
    422ccfa02512阅读 23,318评论 1 8
  • 人生大部分的事情都可以计划,可以为之努力,为之期望和等待实现,唯有生病无法预知,寿命没得设置,即使前一天你还在计划...
    Sukiwu阅读 1,697评论 1 0
  • 1, 很欣赏 “}” 后, 备注 "{" 前 代码。 就是 :// 干了些什么   2, 一定要 高仿 ...
    plantAtree_dAp阅读 1,360评论 1 0
  • 印度有四句极具灵性的话: 1、无论你遇见谁,他都是对的人; 2、无论发生什么事,那都是唯一会发生的事; 3、不管事...
    莫夕归阅读 8,549评论 0 10

友情链接更多精彩内容