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;
相关推荐
玩电脑的辣条哥2 小时前
Python如何播放本地音乐并在web页面播放
开发语言·前端·python
ew452182 小时前
ElementUI表格表头自定义添加checkbox,点击选中样式不生效
前端·javascript·elementui
suibian52352 小时前
AI时代:前端开发的职业发展路径拓宽
前端·人工智能
Moon.92 小时前
el-table的hasChildren不生效?子级没数据还显示箭头号?树形数据无法展开和收缩
前端·vue.js·html
垚垚 Securify 前沿站2 小时前
深入了解 AppScan 工具的使用:筑牢 Web 应用安全防线
运维·前端·网络·安全·web安全·系统安全
工业甲酰苯胺5 小时前
Vue3 基础概念与环境搭建
前端·javascript·vue.js
mosquito_lover16 小时前
怎么把pyqt界面做的像web一样漂亮
前端·python·pyqt
柴柴的小记8 小时前
前端vue引入特殊字体不生效
前端·javascript·vue.js
柠檬豆腐脑9 小时前
从前端到全栈:新闻管理系统及多个应用端展示
前端·全栈
bin91539 小时前
DeepSeek 助力 Vue 开发:打造丝滑的颜色选择器(Color Picker)
前端·javascript·vue.js·ecmascript·deepseek