react官方推荐的classnames库
时间: 2022-02-18     阅读:

一、为什么使用 classnames 这个库

在 react 开发中,我们有的时候需要使用 js 来动态判断是否为组件添加 class(类名),这里我们使用到了 classnames

二、学习网址

https://www.npmjs.com/package/classnames
https://github.com/JedWatson/classnames

三、安装与引入

安装

npm install classnames --save

引入

import classnames from "classnames";

四、使用示例

<Button className={classnames({
    //这里可以根据各属性动态添加,如果属性值为true则为其添加该类名,如果值为false,则不添加。这样达到了动态添加class的目的
      base: true,
      inProgress: this.props.store.submissionInProgress,
      error: this.props.store.errorOccurred,
      disabled: this.props.form.valid,
    })}>
<Button/>

例子:

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'

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

let buttonType = "primary";
classnames({ [`btn-${buttonType}`]: true });

Copyright©2013-2023 北京谷飞科技有限公司版权所有京公网安备 11010502051343