05 React使用classnames控制样式

shell 复制代码
npm install classnames

例子:

javascript 复制代码
import classNames from 'classnames';

// 用法1:传递多个类名
const classes = classNames('foo', 'bar', 'baz');
// 结果: 'foo bar baz'

// 用法2:传递对象,根据条件来选择添加类名
const isActive = true;
const classes = classNames('button', { 'active': isActive });
// 结果: 'button active'

// 用法3:传递数组
const additionalClasses = ['btn', 'btn-primary'];
const classes = classNames('button', additionalClasses);
// 结果: 'button btn btn-primary'

React 例子

javascript 复制代码
// App.js

import React, {useState} from 'react';
import classNames from 'classnames';
import styles from './App.module.css'

// MyComponent.js
function MyComponent({isActive}) {
    const buttonClasses = classNames('button', {
        [styles.active]: isActive,
    });

    return (
        <button className={buttonClasses}>Active Button</button>
    );
}

function App() {
    const [isActive, setIsActive] = useState(false);

    const toggleActive = () => {
        setIsActive(!isActive);
    };

    return (
        <div className="App">
            <h1>Example App</h1>
            <MyComponent isActive={isActive}/>
            <button onClick={toggleActive}>Toggle Active</button>
        </div>
    );
}

export default App;
相关推荐
abigale037 分钟前
webpack+vite前端构建工具 -11实战中的配置技巧
前端·webpack·node.js
专注API从业者26 分钟前
构建淘宝评论监控系统:API 接口开发与实时数据采集教程
大数据·前端·数据库·oracle
Joker`s smile30 分钟前
Chrome安装老版本、不同版本,自制便携版本用于前端调试
前端·chrome
weixin_4166399732 分钟前
爬虫工程师Chrome开发者工具简单介绍
前端·chrome·爬虫
我是如子啊38 分钟前
【解决“此扩展可能损坏”】Edge浏览器(chrome系列通杀))扩展损坏?一招保留数据快速修复
前端·chrome·edge
灵性花火38 分钟前
Qt的前端和后端过于耦合(0/7)
开发语言·前端·qt
孤水寒月5 小时前
基于HTML的悬窗可拖动记事本
前端·css·html
祝余呀5 小时前
html初学者第一天
前端·html
耶啵奶膘7 小时前
uniapp+firstUI——上传视频组件fui-upload-video
前端·javascript·uni-app
视频砖家8 小时前
移动端Html5播放器按钮变小的问题解决方法
前端·javascript·viewport功能