当前位置: 首页 > news >正文

react【四】css

文章目录

  • 1、css
    • 1.1 react和vue css的对比
    • 1.2 内联样式
    • 1.3 普通的css
    • 1.4 css modules
    • 1.5 在react中使用less
    • 1.6 CSS in JS
      • 1.6.1 模板字符串的基本使用
      • 1.6.2 styled-components的基本使用
      • 1.6.3 接受传参
      • 1.6.4 使用变量
      • 1.6.5 继承样式 避免代码冗余
      • 1.6.6 设置主题色
    • 1.7 React中添加class

1、css

1.1 react和vue css的对比

在这里插入图片描述

1.2 内联样式

在这里插入图片描述

在这里插入图片描述

1.3 普通的css

在这里插入图片描述

  • 缺点:css文件是全局样式 会影响到其他的同名的样式,进行样式的堆叠

1.4 css modules

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.5 在react中使用less

  • 1、在根文件中创建 craco.config.js文件夹
    • 安装carco npm i @craco/craco
    • 设置内容
const CracoLessPlugin = require("craco-less");module.exports = {plugins: [{plugin: CracoLessPlugin,options: {lessLoaderOptions: {lessOptions: {modifyVars: { "@primary-color": "#1DA57A" },javascriptEnabled: true}}}}],babel: {plugins: [["@babel/plugin-proposal-decorators", { legacy: true }]]}
};
    • 下载装饰器 npm i @babel/plugin-proposal-decorators -S
  • 2、修改package.json文件
"scripts": {"start": "craco start","build": "craco build","test": "craco test","eject": "react-scripts eject"},

报错可能是版本问题更新一下版本 npm update

在这里插入图片描述
在这里插入图片描述

1.6 CSS in JS

1.6.1 模板字符串的基本使用

// 1.模板字符串的基本使用
const str = `my name is ${name}, age is ${age}`;
console.log(str);// 2.标签模板字符串的使用
function foo(...args) {console.log(args);
}foo(name, age); // (2) ['why', 18]// 这也是一种调用方法
foo``; // [['']]foo`my name is ${name}, age is ${age}`;// 得到的结果变量是默认为空
// [['my name is','','age is',''],'why',18]

在这里插入图片描述

1.6.2 styled-components的基本使用

  • npm install styled-components
    下载vscode插件
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

1.6.3 接受传参

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

1.6.4 使用变量

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

import React, { Component } from "react";
import { AppWrapper, SectionWrapper } from "./style";class App extends Component {constructor() {super();this.state = {size: 30,color: "yellow",};}render() {const { size, color } = this.state;return (<AppWrapper><div className="footer">我是footer</div><SectionWrapper fontSize={size} color={color}><div className="title">我是标题</div><p className="content">我是内容, 哈哈哈</p><button onClick={(e) => this.setState({ color: "skyblue" })}>修改颜色</button></SectionWrapper></AppWrapper>);}
}export default App;
import styled from "styled-components";
import * as vars from "./style/variables";// 1、基本使用
// export const AppWrapper = styled.div``export const AppWrapper = styled.div`/* 使用AppWrapper作为标签 就会继承样式 */.footer {background-color: black;}
`;// 2、将子元素单独抽取到一个样式组件
// 3.可以接受外部传入的props作为参数 也可设置默认值attrsexport const SectionWrapper = styled.div.attrs((props) => ({// 默认用传进来的参数 没有的话就使用20textSize: props.fontSize || 20,textColor: props.color || vars.primaryColor,
}))`/* section不需要写类名 */color: ${(props) => props.textColor};border: 1px solid ${vars.primaryColor};.title {/* 上面使用了新的变量来处理fontSize 所以需要使用textSize */font-size: ${(props) => props.textSize}px;color: red;}.content {&:hover {color: yellow;}}
`;

1.6.5 继承样式 避免代码冗余

在这里插入图片描述
在这里插入图片描述

1.6.6 设置主题色

在这里插入图片描述
在这里插入图片描述

1.7 React中添加class

  • cnpm install classnames
  • 在这里插入图片描述

相关文章:

react【四】css

文章目录 1、css1.1 react和vue css的对比1.2 内联样式1.3 普通的css1.4 css modules1.5 在react中使用less1.6 CSS in JS1.6.1 模板字符串的基本使用1.6.2 styled-components的基本使用1.6.3 接受传参1.6.4 使用变量1.6.5 继承样式 避免代码冗余1.6.6 设置主题色 1.7 React中添…...

SpringIOC之support模块SimpleThreadScope

博主介绍:✌全网粉丝5W+,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验✌ 博主作品:《Java项目案例》主要基于SpringBoot+MyBatis/MyBatis-plus+…...

气味是否能通过光缆、信号传播?

搜索资料&#xff0c;有一点点眉目&#xff0c; 参考&#xff1a;未来网络可以传送气味 如何产生并被感知--双鸭山新闻网...

安装部署k8s集群

系统&#xff1a; CentOS Linux release 7.9.2009 (Core) 准备3台主机 192.168.44.148k8s-master92.168.44.154k8s-worker01192.168.44.155k8s-worker02 3台主机准备工作 关闭防火墙和selinux systemctl disable firewalld --nowsetenforce 0sed -i s/SELINUXenforcing/SELI…...

曲线生成 | 图解B样条曲线生成原理(基本概念与节点生成算法)

目录 0 专栏介绍1 什么是B样条曲线&#xff1f;2 基函数的de Boor递推式3 B样条曲线基本概念图解4 节点生成公式 0 专栏介绍 &#x1f525;附C/Python/Matlab全套代码&#x1f525;课程设计、毕业设计、创新竞赛必备&#xff01;详细介绍全局规划(图搜索、采样法、智能算法等)…...

CyberDAO:web3时代的引领者

Web3.0正在改写着世界运行的规则&#xff0c;AGI将为人类未来的生产效率、工作方式与目标带来改变&#xff0c;区块链经过十余年发展开启了去中心化新格局&#xff0c;带来生产关系的变革。人类正在从过往以时间换取收入、听命完成工作&#xff0c;转变为以个性化、自主追求人生…...

java以及android类加载机制

类加载机制 一、Java类加载机制 java中&#xff0c;每一个类或者接口&#xff0c;在编译后&#xff0c;都会生成一个.class文件。 类加载机制指的是将这些.class文件中的二进制数据读入到内存中并对数据进行校验&#xff0c;解析和初始化。最终&#xff0c;每一个类都会在方…...

【Go】四、rpc跨语言编程基础与rpc的调用基础原理

Go管理工具 早期 Go 语言不使用 go module 进行包管理&#xff0c;而是使用 go path 进行包管理&#xff0c;这种管理方式十分老旧&#xff0c;两者最显著的区别就是&#xff1a;Go Path 创建之后没有 go.mod 文件被创建出来&#xff0c;而 go module 模式会创建出一个 go.mod…...

Linux CentOS系统安装SQL Server并结合内网穿透实现公网访问本地数据

&#x1f525;博客主页&#xff1a; 小羊失眠啦. &#x1f3a5;系列专栏&#xff1a;《C语言》 《数据结构》 《C》 《Linux》 《Cpolar》 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&…...

输入捕获模式测频率PWM输入模式(PWMI)测占空比

一、概念介绍 输出比较&#xff1a; 比较电路输入的CNT、CCR大小关系 &#xff0c;在通道引脚输出高低电平 二、*频率知识、测量方法补充 * N/fc得到标准频率的时长&#xff0c;也就是待测频率的周期 测频法代码实现&#xff1a;修改对射式红外传感器计次&#xff08;上升沿…...

解锁VIP会员漫画:用Python爬虫轻松实现高清漫画下载

嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 环境使用: Python 3.10 Pycharm 模块使用: requests >>> pip install requests 数据请求模块 parsel >>> pip install parsel 数据解析模块…...

备战蓝桥杯---动态规划(入门3之子串问题)

本专题再介绍几种经典的字串问题。 这是一个两个不重叠字串和的问题&#xff0c;我们只要去枚举分界点c即可&#xff0c;我们不妨让c作为右区间的左边界&#xff0c;然后求[1,c)上的单个字串和并用max数组维护。对于右边&#xff0c;我们只要反向求单个字串和然后选左边界为c的…...

JavaScript:隐式类型转换与显式类型转换

文章目录 隐式类型转换&#xff08;Implicit Type Conversion&#xff09;1、字符串与数字的转换2、非布尔值到布尔值的转换3、在相等性比较中的转换4、对象到基础类型的转换5、在算术运算符中的其他转换 显式类型转换&#xff08;Explicit Type Conversion&#xff09;1、Numb…...

【电路笔记】-LR串联电路

LR串联电路 文章目录 LR串联电路1、概述2、示例1所有线圈、电感器、扼流圈和变压器都会在其周围产生磁场,由电感与电阻串联组成,形成 LR 串联电路。 1、概述 在本节有关电感器的第一个文章中,我们简要介绍了电感器的时间常数,指出流过电感器的电流不会瞬时变化,而是会以恒…...

Ansible 自动化运维工具的使用

目录 Ansible的简介 ansible 环境安装部署 ansible 命令行模块 command 模块 shell 模块 cron 模块 user 模块 group 模块 copy 模块 file 模块 hostname 模块 ping 模块 yum 模块 service/systemd 模块 script 模块 mount 模块 archive 模块 unarchive 模…...

亚马逊、ozon、速卖通、Lazada等跨境平台为什么评论老是被删

对于卖家而言&#xff0c;最难的并不是销售量&#xff0c;最难的是让客户在购买后能够留下一个高质量的review&#xff0c;毕竟现在的市场&#xff0c;以listing的排名为基准&#xff0c;以review数量多少和质量的高低来评判店铺的好坏 几乎所有的卖家都会有索评的烦恼&#x…...

手把手带你在Linux上安装带GPU加速的opencv库(C++版本)

1.安装依赖 sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev sudo apt-get install python-dev python-numpy python3-dev python3-numpy sudo apt-get install libtbb2 libtbb-dev libjpeg-dev l…...

【Linux】软件包管理器 yum | vim编辑器

前言: 软件包管理器 yum和vim编辑器讲解 文章目录 软件包管理器 yum编辑器-vim四种模式普通模式批量化注释和批量化去注释末行模式临时文件 软件包管理器 yum yum&#xff08;Yellowdog Updater, Modified&#xff09;是一个在基于 RPM&#xff08;管理软件包的格式和工具集合&…...

vue常见问题

文章目录 data为什么是一个函数&#xff0c;而不是一个对象&#xff1f;什么情况下可以使用对象&#xff1f;key的作用&#xff0c;为什么不能用Index&#xff1f;render函数&#xff0c;h函数&#xff0c;和template什么关系&#xff1f;vue 是怎么解析template的? template会…...

ArcgisForJS基础

文章目录 0.引言1.第一个ArcgisForJS应用程序1.1.安装部署ArcgisForJS1.2.实现ArcgisForJS应用程序 2.开发与调试工具2.1.集成开发环境2.2.调试工具2.3.Firebug 0.引言 ArcGIS API for JavaScript是一款由Esri公司开发的用于创建WebGIS应用的JavaScript库。它允许开发者通过调…...

解密AliceSoft游戏文件处理:3种高效提取与编辑方法深度解析

解密AliceSoft游戏文件处理&#xff1a;3种高效提取与编辑方法深度解析 【免费下载链接】alice-tools Tools for extracting/editing files from AliceSoft games. 项目地址: https://gitcode.com/gh_mirrors/al/alice-tools alice-tools是一款专为AliceSoft游戏设计的开…...

【仅剩72小时有效】ChatGPT最新指令缓存机制变更预警:所有未启用“strict_mode”配置的账号将于4月30日降权

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;ChatGPT自定义指令设置的底层逻辑与变更背景 ChatGPT 的自定义指令&#xff08;Custom Instructions&#xff09;并非简单的前端配置开关&#xff0c;而是深度集成于模型推理前处理&#xff08;pre-inference …...

2026年阿里云OpenClaw/Hermes Agent配置Token Plan部署操作全解

2026年阿里云OpenClaw/Hermes Agent配置Token Plan部署操作全解。OpenClaw是开源的个人AI助手&#xff0c;Hermes Agent则是一个能自我进化的AI智能体框架。阿里云提供计算巢、轻量服务器及无影云电脑三种部署OpenClaw 与 Hermes Agent的方案、百炼Token Plan兼容主流 AI 工具&…...

AI动态简报之商业洞察篇(2026.05.24)

聚焦&#xff1a;AI商业应用与变现 5条精选&#x1f4a1; 第1条&#xff1a;大模型进入"价值验证年"——行业从技术信仰转向商业回报商业价值&#xff1a;2026年5月&#xff0c;全球AI行业呈现清晰转折信号&#xff1a;行业正从"技术信仰期"&#xff08;2…...

3步搞定无人机影像处理:ODM免费开源工具完全指南

3步搞定无人机影像处理&#xff1a;ODM免费开源工具完全指南 【免费下载链接】ODM A command line toolkit to generate maps, point clouds, 3D models and DEMs from drone, balloon or kite images. &#x1f4f7; 项目地址: https://gitcode.com/gh_mirrors/od/ODM …...

unrpa:5步掌握Ren‘Py游戏资源提取的完整指南

unrpa&#xff1a;5步掌握RenPy游戏资源提取的完整指南 【免费下载链接】unrpa A program to extract files from the RPA archive format. 项目地址: https://gitcode.com/gh_mirrors/un/unrpa 对于热爱RenPy视觉小说的玩家和开发者来说&#xff0c;unrpa是打开游戏资源…...

字典树(Trie)详解 + Java 代码实现

目录 一、字典树核心概念 1. 结构特点 2. 核心应用场景 3. 时间复杂度 二、字典树结构设计 三、完整 Java 代码实现 四、代码逐段讲解 1. 节点类 TrieNode 2. 插入方法 insert 3. 查询单词 search 4. 查询前缀 startsWith 五、字典树优点 vs 缺点 优点 缺点 六、…...

商复形持续同调:从晶体周期性拓扑到材料带隙预测的实践

1. 项目概述&#xff1a;当拓扑学遇见材料科学在材料科学&#xff0c;尤其是新兴的二维钙钛矿研究领域&#xff0c;一个核心的挑战是如何从原子坐标这种看似简单的点云数据中&#xff0c;高效、准确地提取出与宏观物理性质&#xff08;如电子带隙&#xff09;强相关的特征。传统…...

如何快速掌握Poppins字体:免费开源的多语言设计终极指南

如何快速掌握Poppins字体&#xff1a;免费开源的多语言设计终极指南 【免费下载链接】Poppins Poppins, a Devanagari Latin family for Google Fonts. 项目地址: https://gitcode.com/gh_mirrors/po/Poppins 还在为多语言项目寻找完美的字体解决方案而烦恼吗&#xff…...

Android虚拟位置终极指南:如何为每个应用单独设置模拟位置

Android虚拟位置终极指南&#xff1a;如何为每个应用单独设置模拟位置 【免费下载链接】FakeLocation Xposed module to mock locations per app. 项目地址: https://gitcode.com/gh_mirrors/fak/FakeLocation 想要在社交软件中保护隐私&#xff0c;在游戏中获取区域限定…...