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

【前端知识】React 基础巩固(三十)——CSS编写方式

React 基础巩固(三十)——CSS编写方式

1.内联样式

  • Style 接受一个采用小驼峰命名属性的JS对象,而不是CSS字符串

  • 可以引用state中的状态来设置相关的样式

  • 优点:样式之间不会有冲突;可以动态获取当前state中的状态

  • 缺点:需要使用驼峰标识;某些样式没有提示;大量样式下,代码混乱;某些样式无法编写(伪类/伪元素…)

    import React, { PureComponent } from "react";export class App extends PureComponent {constructor() {super();this.state = {titleSize: 30,};}addTitleSize() {this.setState({titleSize: this.state.titleSize + 1,});}render() {const { titleSize } = this.state;return (<div>{/* 内联样式 */}<button onClick={(e) => this.addTitleSize()}>add titleSize</button><h2 style={{ color: "red", fontSize: `${titleSize}px` }}>标题文字</h2><p style={{ color: "blue" }}>内容文字</p></div>);}
    }export default App;

2.常规样式

  • 将样式编写到单独的文件,再引入使用
  • 优点:和往常的编写方式一致
  • 缺点:样式之间相互层叠、相互影响
import React, { PureComponent } from "react";
import "./App.css";
export class App extends PureComponent {render() {return (<div><h2 className="title">标题内容</h2><p className="content">内容文字</p></div>);}
}export default App;

3.css modules

  • React脚手架内置 css modules 的配置,.css/.less/.scss等样式文件都需要修改成 .modules.css/.modules.less/.modules.scss之后进行引用
  • 优点:解决了局部作用域的问题
  • 缺点:引用的类名不能使用连接符;所有的className都必须使用{style.className}的形式来编写;不便于动态修改样式
import React, { PureComponent } from "react";
import appStyle from "./App.module.css";
export class App extends PureComponent {render() {return (<div><h2 className={appStyle.title}>标题内容</h2><p className={appStyle.content}>内容文字</p></div>);}
}export default App;

4.CSS in JS

  • CSS 由 JS生成而不是在外部文件中定义

  • 优点:通过JS为CSS赋予能力,包括:CSS预处理的样式嵌套、函数定义、逻辑复用、动态修改状态等。

  • 缺点:获取动态状态依然是一个不好处理的问题

  • 采用 CSS in JS 的库有:

    • styled - components(推荐)
    • emotion
    • Glamorous
  • 编写 style.js 文件

import styled from "styled-components";export const AppWrapper = styled.div.attrs((props) => {return {titleColor: props.titleColor || "green",};
})`.section {background-color: red;}.title {color: ${(props) => props.titleColor};}.content {color: green;}
`;
  • 使用 styled-components

安装styled-components

npm install styled-components

引入styled-components

import React, { PureComponent } from "react";
import {AppWrapper} from './style'export class App extends PureComponent {render() {return (<AppWrapper titleColor={'blue'}><div className="section"><h2 className="title">标题内容</h2><p className="content">内容文字</p></div></AppWrapper>);}
}export default App;

相关文章:

【前端知识】React 基础巩固(三十)——CSS编写方式

React 基础巩固(三十)——CSS编写方式 1.内联样式 Style 接受一个采用小驼峰命名属性的JS对象&#xff0c;而不是CSS字符串 可以引用state中的状态来设置相关的样式 优点&#xff1a;样式之间不会有冲突&#xff1b;可以动态获取当前state中的状态 缺点&#xff1a;需要使用…...

Langchain 集成 FAISS

Langchain 集成 FAISS 1. FAISS2. Similarity Search with score3. Saving and loading4. Merging5. Similarity Search with filtering 1. FAISS Facebook AI Similarity Search (Faiss)是一个用于高效相似性搜索和密集向量聚类的库。它包含的算法可以搜索任意大小的向量集&a…...

科技与人元宇宙论坛跨界对话

近来&#xff0c;“元宇宙”成为热门话题&#xff0c;越来越频繁地出现在人们的视野里。大家都在谈论它&#xff0c;但似 乎还没有一个被所有人认同的定义。元宇宙究竟是什么&#xff1f;未来它会对我们的工作和生活带来什么样 的改变&#xff1f;当谈论虚拟现实&#xff08;VR…...

JAVA-生成二维码图片

使用hutool工具包,主动一个简单方便,pom添加依赖 <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.12</version> </dependency> 直接上代码 //设置像素宽高 QrConfig config new…...

【iOS】iOS持久化

文章目录 一. 数据持久化的目的二. iOS中数据持久化方案三. 数据持有化方式的分类1. 内存缓存2. 磁盘缓存SDWebImage缓存 四. 沙盒机制的介绍五. 沙盒目录结构1. 获取应用程序的沙盒路径2. 访问沙盒目录常用C函数介绍3. 沙盒目录介绍 六. 持久化数据存储方式1. XML属性列表2. P…...

基于Javaweb+Vue3实现淘宝卖鞋前后端分离项目

前端技术栈&#xff1a;HTMLCSSJavaScriptVue3 后端技术栈&#xff1a;JavaSEMySQLJDBCJavaWeb 文章目录 前言1️⃣登录功能登录后端登录前端 2️⃣商家管理查询商家查询商家后端查询商家前端 增加商家增加商家后端增加商家前端 删除商家删除商家后端删除商家前端 修改商家修改…...

bat一键批量、有序启动jar

将脚本文件后缀改为 bat&#xff0c;脚本文件和 jar 包放在同一个目录 echo offstart cmd /c "java -jar register.jar " ping 192.0.2.2 -n 1 -w 10000 > nulstart cmd /c "java -jar admin.jar " ping 192.0.2.2 -n 1 -w 30000 > nulstart cmd /c…...

centos7安装mysql数据库详细教程及常见问题解决

mysql数据库详细安装步骤 1.在root身份下输入执行命令&#xff1a; yum -y update 2.检查是否已经安装MySQL&#xff0c;输入以下命令并执行&#xff1a; mysql -v 如出现-bash: mysql: command not found 则说明没有安装mysql 也可以输入rpm -qa | grep -i mysql 查看是否已…...

C++ STL sort函数的底层实现

C STL sort函数的底层实现 sort函数的底层用到的是内省式排序以及插入排序&#xff0c;内省排序首先从快速排序开始&#xff0c;当递归深度超过一定深度&#xff08;深度为排序元素数量的对数值&#xff09;后转为堆排序。 先来回顾一下以上提到的3中排序方法&#xff1a; 快…...

ICP算法和优化问题详细公式推导

1. 介绍 ICP(Iterative Closest Point)&#xff1a;求一组平移和旋转使得两个点云之间重合度尽可能高。 2. 算法流程 找最近邻关联点&#xff0c;求解 R , t R , t R , t R , t R,tR,tR,tR,t R,tR,tR,tR,t&#xff0c;如此反复直到重合程度足够高。 3. 数学描述 X { x 1 ,…...

【安全狗】linux免费服务器防护软件安全狗详细安装教程

在费用有限的基础上&#xff0c;复杂密码云服务器基础防护常见端口替换安全软件&#xff0c;可以防护绝大多数攻击 第一步&#xff1a;下载服务器安全狗Linux版&#xff08;下文以64位版本为例&#xff09; 官方提供了两个下载方式&#xff0c;本文采用的是 方式2 wget安装 方…...

【iOS】自定义字体

文章目录 前言一、下载字体二、添加字体三、检查字体四、使用字体 前言 在设计App的过程中我们常常会想办法去让我们的界面变得美观&#xff0c;使用好看的字体是我们美化界面的一个方法。接下来笔者将会讲解App中添加自定义字体 一、下载字体 我们要使用自定义字体&#x…...

WPF实战学习笔记06-设置待办事项界面

设置待办事项界面 创建待办待办事项集合并初始化 TodoViewModel&#xff1a; using Mytodo.Common.Models; using Prism.Commands; using Prism.Mvvm; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using Sy…...

推荐几个不错的免费配色工具网站

1. Paletton专业的配色套件,提供色轮理论及调色功能。可查看配色预览效果。 网站:http://paletton.com 2. Colormind一个基于机器学习的智能配色工具。可以一键生成配色方案。 网站:http://colormind.io 3. Adobe ColorAdobe官方的配色工具,可以从图片中取色,也可以随机生成配色…...

gitee page发布的静态网站,无法播放目录中的mp4视频

起因是希望在gitee上部署静态网站&#xff0c;利用three.js VideoTexture 环境贴图播放视频。 但是试了多几次 mp4均提示404&#xff0c;资源无法获取&#xff1b; 找了很多方案&#xff0c;最后发现将视频转为ogv 就可以完美适配了&#xff1b; mp4转ogv 附threejs使用ogv进…...

opencv-26 图像几何变换04- 重映射-函数 cv2.remap()

什么是重映射&#xff1f; 重映射&#xff08;Remapping&#xff09;是图像处理中的一种操作&#xff0c;用于将图像中的像素从一个位置映射到另一个位置。重映射可以实现图像的平移、旋转、缩放和透视变换等效果。它是一种基于像素级的图像变换技术&#xff0c;可以通过定义映…...

SkyWalking链路追踪中span全解

基本概念 在SkyWalking链路追踪中&#xff0c;Span&#xff08;跨度&#xff09;是Trace&#xff08;追踪&#xff09;的组成部分之一。Span代表一次调用或操作的单个组件&#xff0c;可以是一个方法调用、一个HTTP请求或者其他类型的操作。 每个Span都包含了一些关键的信息&am…...

【前端知识】React 基础巩固(三十一)——Redux的简介

React 基础巩固(三十一)——Redux 一、Redux是个纯函数 概念 纯函数&#xff08;确定的输入一定产生确定的输出&#xff0c;函数在执行过程中不产生副作用&#xff09;&#xff1a; 在程序设计中&#xff0c;若一个函数符合以下条件&#xff0c;那么这个函数就被称为纯函数…...

拦截Bean使用之前各个时机的Spring组件

拦截Bean使用之前各个时机的Spring组件 之前使用过的BeanPostProcessor就是在Bean实例化之后&#xff0c;注入属性值之前的时机。 Spring Bean的生命周期本次演示的是在Bean实例化之前的时机&#xff0c;使用BeanFactoryPostProcessor进行验证&#xff0c;以及在加载Bean之前进…...

RT thread 之 Nand flash 读写过程分析

文章目录 前言&#xff1a;什么是Nand Flash&#xff1f;1、Nand Flash 读取步骤2、从主存读到Cache2.1 在标准spi接口下读取过程2.2 测试时序&#xff08;SPI频率30MHz&#xff09; 3.从Cache读取数据3.1在标准spi接口读取过程测试时序 前言&#xff1a;什么是Nand Flash&…...

**用Python实现高效分子结构建模与能量计算:从零开始构建你的计算化学工具链**在现代计算化学中,**Python已成

用Python实现高效分子结构建模与能量计算&#xff1a;从零开始构建你的计算化学工具链 在现代计算化学中&#xff0c;Python已成为科研人员首选的编程语言之一&#xff0c;它不仅语法简洁、生态丰富&#xff0c;还具备强大的科学计算能力。本文将带你一步步搭建一个基于Python的…...

NSGA-III中的参考点生成与多样性维护机制解析

1. NSGA-III算法中的参考点是什么&#xff1f; 第一次接触NSGA-III算法时&#xff0c;最让我困惑的就是这个"参考点"概念。简单来说&#xff0c;参考点就像是多目标优化问题中的导航灯塔&#xff0c;它们均匀分布在目标空间里&#xff0c;指引算法找到分布均匀的解集…...

从uboot到内核启动:深度解析【system halted】与解压失败的典型场景

1. 嵌入式Linux启动流程全景解析 当你按下嵌入式设备的电源键&#xff0c;背后其实隐藏着一场精密的接力赛。就像奥运会开幕式上的火炬传递&#xff0c;uboot是第一棒选手&#xff0c;内核是最后一棒。但这次传递稍有差池&#xff0c;就可能出现"火炬熄灭"&#xff…...

终极指南:如何用3分钟为Windows换上《蔚蓝档案》风格光标主题

终极指南&#xff1a;如何用3分钟为Windows换上《蔚蓝档案》风格光标主题 【免费下载链接】BlueArchive-Cursors Custom mouse cursor theme based on the school RPG Blue Archive. 项目地址: https://gitcode.com/gh_mirrors/bl/BlueArchive-Cursors 每天面对电脑工作…...

腾讯云推出“领域虾”CloudQ:把企业云上治理,装进你每天都在用的聊天框

好家伙&#xff0c;腾讯云又给龙虾市场上新了。最近&#xff0c;腾讯云官宣的 CloudQ IT 老师傅&#xff08;全球首款 ITOM“领域虾”&#xff09;&#xff0c;直接把云上的技术难题给办了。你甚至都不用登录控制台、不用敲命令&#xff0c;在微信里聊聊天就能完成架构巡检、风…...

Google Stitch + MCP:AI 时代的“设计即代码“新范式

从模糊需求到可运行应用&#xff0c;只需 3 小时——这不是科幻&#xff0c;而是正在发生的 AI 编程革命。 引言&#xff1a;当设计遇见代码 在 AI 编程工具百花齐放的今天&#xff0c;开发者们面临着一个尴尬的现实&#xff1a;工具越多&#xff0c;上下文越碎。 想象一下这…...

什么是 Harness Engineering?OpenAI Codex 团队亲自给出答案

过去五个月&#xff0c;OpenAI 的一个团队做了一件听起来有点疯狂的事&#xff1a;从零开始交付一款软件产品的内测版本&#xff0c;全程没有一行代码是人手写的。 这不是玩具项目。这个产品有真实的内部日活用户和外部 Alpha 测试者&#xff0c;经历了完整的交付、部署、故障…...

NaViL-9B创意设计辅助:UI截图理解+改进建议与文案优化生成

NaViL-9B创意设计辅助&#xff1a;UI截图理解改进建议与文案优化生成 1. 平台简介 NaViL-9B是上海人工智能实验室推出的原生多模态大语言模型&#xff0c;具备强大的文本理解和图像分析能力。这款模型特别适合设计师、产品经理和营销人员使用&#xff0c;能够帮助用户快速理解…...

RocketMQ的“三高”架构设计

RocketMQ的“三高”架构设计&#xff0c;主要围绕高可用、高吞吐、高扩展三个维度展开&#xff0c;分别解决服务不中断、性能不瓶颈、规模不设限的核心问题。1 高可用&#xff08;High Availability&#xff09;高可用的目标是确保部分组件故障时&#xff0c;消息服务依然可用&…...

无源光网络-PON

一、无源光网络-PON简介1.1 无源光网络定义无源光网络&#xff08;PON&#xff09; 是一种点到多点的光纤接入技术&#xff0c;全程采用无源光器件&#xff08;光分路器、光纤、光接头等&#xff0c;无电源、无电子电路&#xff09;实现信号传输。1.2 核心要点1.2.1 特点无源&a…...