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;
相关推荐
有很多梦想要实现1 分钟前
Jest 测试ES类
前端·javascript·单元测试·webstorm
m0_7493175210 分钟前
Maven学习
java·前端·后端·学习·maven
Coderfuu26 分钟前
Java Web 3 Axios & Vue组件库
前端·javascript·vue.js
闭上眼让寒冷退却29 分钟前
axios笔记
前端·笔记
小C好好干饭31 分钟前
Vue网页屏保
前端·javascript·vue.js
叶浩成52033 分钟前
draggable插件——实现元素的拖动排序——拖动和不可拖动的两种情况处理
前端·javascript·vue.js
刘大浪36 分钟前
vue npm install出现问题
前端·vue.js·npm
繁依Fanyi36 分钟前
打造一个有点好看的 uniapp 网络测速软件
前端
躺平使者39 分钟前
填坑小能手——页面缓存
前端
素质白嫖怪40 分钟前
element Plus中 el-table表头宽度自适应,不换行
前端·javascript·vue.js