React05 样式控制 & classnames工具优化类名控制

样式控制 & classnames工具优化类名控制


样式控制

1. 行内样式控制

js 复制代码
//定义样式
const style = {
  color: 'red',
  fontSize: '30px'
}

function App() {
  return (
    <div className="App">
      {/* 行内样式控制 */}
      <p style={style}>Hello BLU!</p>
    </div>
  );
}
export default App;

2. 外部样式控制

  • App.js
js 复制代码
//导入外部样式
import './index.css';

function App() {
  const clickHandler = (name) => {
    alert("Hello " + name);
  }
  return (
    <div className="App">
      {/* class类名样式控制 */}
      <button className='bluBtn' onClick={() => clickHandler('BLU')}>Click Me</button>
    </div>
  );
}
export default App;
  • index.css
css 复制代码
.bluBtn {
    color: red;
    font-size: 20px;
    font-weight: 600;
}

classnames工具优化类名控制

  • npm 安装依赖
bash 复制代码
npm install classnames
  • Tab 组件
js 复制代码
//导入外部样式
import './index.css';
//引入依赖
import classNames from 'classnames';
//引入useState
import { useState } from 'react';

function Tab() {
    const [type, setType] = useState('');
    const handleTabClick = (name) => {
      setType(name);
    }
    return (
      <div>
        <button className={classNames('bluBtn', {active: type === 'A'})} onClick={() => handleTabClick('A')}>Tab A</button>
        <button className={classNames('bluBtn', {active: type === 'B'})} onClick={() => handleTabClick('B')}>Tab B</button>
      </div>
    );
  }
export default Tab;
  • index.css
css 复制代码
.bluBtn {
    color: red;
    font-size: 20px;
    font-weight: 600;
}
.bluBtn.active {
    background-color: bisque;
}
  • App.js
js 复制代码
import Tab from "./Tab";

function App() {
  return (
    <div className="App">
      <Tab></Tab>      
    </div>
  );
}
export default App;
相关推荐
橘子编程3 分钟前
React 19 全栈开发实战指南
前端·react.js·前端框架
DanCheOo4 分钟前
AI Streaming 架构:从浏览器到服务端的全链路流式设计
前端·agent
我是小趴菜10 分钟前
前端如何让图片、视频、pdf等文件在浏览器直接下载而非预览
前端
cg3314 分钟前
开源项目自动化:用 GitHub Actions 让每个 Issue 都被温柔以待
前端
haierccc24 分钟前
Win7、2008R2、Win10、Win11使用FLASH的方法
前端·javascript·html
We་ct27 分钟前
LeetCode 50. Pow(x, n):从暴力法到快速幂的优化之路
开发语言·前端·javascript·算法·leetcode·typescript·
柠檬味的Cat30 分钟前
使用腾讯云COS作为WordPress图床的实践
前端·github·腾讯云
Hilaku33 分钟前
卷AI、卷算法、2026 年的前端工程师到底在卷什么?
前端·javascript·面试
非凡ghost34 分钟前
AIMP(音乐播放软件)
前端·windows·音视频·firefox
xiaotao13136 分钟前
Vite 完全学习指南
前端·vite·前端打包