第十八章 React中的样式模块化处理

news2025/1/21 12:04:16

在React中组件如何使用本地的样式,而不对其他组件产生影响呢?我们这里需要使用样式的模块化处理,使得组件的样式只在该组件内部起作用。

这里我们通过两个组件应用说明。

定义组件

  • 定义Hello组件与自定义样式

Hello/index.css

.title{
    color:red;
}

Hello/index.jsx

import {Component} from "react"
import "./index.css"

export default class Hello extends Component {
  render(){
    return <h1 className="title">Hello World</h1>
  }
}
  • 定义Welcome组件与自定义样式

Welcome/index.css

.title{
    color:green;
}

Welcome/index.jsx

import { Component } from "react";

import "./index.css"

export default class Welcome extends Component{
  render(){
    return <h2 className="title">Welcome</h2>
  }
}
  • 引入组件大到App容器
import { Component} from "react"

import Hello from "./components/Hello"
import Welcome from "./components/Welcome"

export default class App extends Component {
  render() {
    return (<div>App
      <Hello/>
      <Welcome/>
    </div>)
  }
}
  • 查看效果

在这里插入图片描述

从上图我们看到字体颜色中我们的Hello World应该是红色,但是确实绿色,这是因为两个组件都被引入到了App容器里面,以致于css样式被覆盖了。


改造样式模块化

步骤1:请在CSS文件中使用:local关键字来定义本地作用域的样式。

:local .title {
  color: green;
}

步骤2:修改样式文件名称

index.css ===> index.module.css

步骤3:修改样式引入方式

import welcomesty from "./index.module.css"

步骤4:修改类名使用方式

import { Component } from "react";

import welcomesty from "./index.module.css"

export default class Welcome extends Component{
  render(){
    return <h2 className={welcomesty.title}>Welcome</h2>
  }
}

步骤5:查看效果

在这里插入图片描述

从上图可以看到,组件的字体颜色都是其内部样式文件定义的,并没有被覆盖,说明我们的样式模块化已经生效。


总结

React中,可以使用CSS模块来为组件添加样式。要使用CSS模块,请在CSS文件中使用**:local关键字**来定义本地作用域的样式。例如,以下CSS代码将定义一个本地作用域的样式:

:local .myClass {
  color: red;
}

然后,在React组件中,可以使用import语句将CSS模块导入组件中,并使用className属性将样式应用于组件。例如,以下代码将导入名为stylesCSS模块,并将其应用于MyComponent组件:

import styles from './path/to/styles.module.css';

function MyComponent() {
  return (
    <div className={styles.myClass}>
      Hello World!
    </div>
  );
}

在这个例子中,styles.myClass将被解析为一个唯一的类名,以确保样式只应用于MyComponent组件。

注意:这里的css样式文件名后缀是:.module.css

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/414318.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Win 11 上在VMware 15安装时Ubuntu20.04注意事项(避坑必看)

遇到的问题 https://zhuanlan.zhihu.com/p/141033713 win11不兼容vm–VMware Workstation 与 Device/Credential Guard 不兼容。 https://zhuanlan.zhihu.com/p/428362751 打开控制面板-程序-启用或关闭Windows功能&#xff0c;发现win11没有Hyper-V&#xff0c;别慌&#xf…

算法设计 - 二分法和三分法,洛谷P3382

二分法 二分查找&#xff1a;找目标值位置 二分法是一种适用于特殊场景下的分治算法。 这里的特殊场景指的是&#xff0c;二分法需要作用在一个具有单调性的区间内。 比如&#xff0c;我们熟知的二分查找&#xff0c;就是一种二分法的具体实现&#xff0c;二分查找必须在一…

【云原生】阿里云ACK部署MySQL 数据持久化存储

思路图 一、概述 ACK介绍 阿里云容器服务Kubernetes版(Alibaba Cloud Container Service for Kubernetes,简称容器服务ACK)是全球首批通过Kubernetes一致性认证的服务平台,提供高性能的容器应用管理服务,支持企业级Kubernetes容器化应用的生命周期管理,轻松高效地在云端…

MAE论文阅读《Masked Autoencoders Are Scalable Vision Learners》

文章目录动机方法写作方面参考Paper: https://arxiv.org/pdf/2111.06377.pdf 动机 首先简要介绍下BERT&#xff0c;NLP领域的BERT是基于Transformer架构&#xff0c;并采取无监督预训练的方式去训练模型。它提出的预训练方法在本质上是一种masked autoencoding&#xff0c;也就…

【CSS】定位 ⑤ ( 子元素绝对定位 父元素相对定位 | 代码示例 )

文章目录一、子元素绝对定位 父元素相对定位二、代码示例一、子元素绝对定位 父元素相对定位 绝对定位 要和 带有定位 的 父容器 搭配使用 ; 子元素 使用绝对定位 , 父元素要使用 相对定位 ; 子元素使用 绝对定位 , 在布局中不会保留其位置 , 子元素完全依赖 父容器 的位置 ,…

阿里巴巴春招的后端面经来啦~

操作系统 一个操作系统&#xff0c;我们在衡量它的内存占用的时候&#xff0c;它一般会有哪些内存的部分&#xff1f; 读者答&#xff1a;堆和栈 补充&#xff1a; 这个其实是问你对free命令的理解。 主机的内存做一些清理的动作。你知道这里面会涉及到对哪些内存区域进行操…

大数据任务调度器 —— Azkaban 3.0 进阶应用

文章目录任务依赖任务重试JavaProcess 进程任务提交条件执行自定义条件预定义条件定时执行邮件警告前言&#xff1a;Azkaban 搭建以及基础介绍&#xff0c;查看这篇博客 —— 大数据任务调度器 —— Azkaban 3.0 部署与简单应用 任务依赖 Azkaban 中的任务依赖设置十分简单&…

OpenCV中的相机标定

之前在https://blog.csdn.net/fengbingchun/article/details/130039337 中介绍了相机的内参和外参&#xff0c;这里通过OpenCV中的接口实现对内参和外参的求解。 估计相机参数的过程称为相机标定(camera calibration)。相机标定是使用已知的真实世界模式(例如棋盘)来估计…

从风靡全球到风口,他们是如何做到的?

大家好&#xff0c;我是湖北鑫优尚电子商务。我们是从2019年下半年就注意到了TikTok的风口&#xff0c;并在2020年初&#xff0c;团队就开始投入TikTok的运营及商业变现。从2019年起&#xff0c;围绕TikTok一系列的产品功能迭代和商业模式开放的声音一直不绝于耳&#xff0c;直…

零基础可以学习数据分析吗,有没有好的培训机构推荐?

数据分析从沿海火到了中西部的软件园&#xff0c;从传统互联网企业火到了新经济领域&#xff0c;火到了第一二产业。数字化成为这个时代的标签&#xff0c;而数据也成为了最有价值的资源&#xff0c;更多企业重视数据&#xff1b;因为有了真实数据的支撑&#xff0c;所有的决策…

快速排序(挖坑法 前后指针法 非递归版本)

上一次我们说了快速排序的hoare的版本&#xff0c;但是该版本有很多问题&#xff0c;首先是需要控制很多边界&#xff0c;比较复杂一点 其次就是上一次的快速排序还是有很多的其他问题 我们试着想一下&#xff0c;如果我们用快速排序拍有序数组&#xff0c;那会怎么样&#x…

数字化和自动化的潮流:外贸企业如何应对?

当今世界正面临着数字化和自动化的浪潮&#xff0c;这些技术的应用正在深刻地改变着各个领域的生产、交易和管理方式。尤其在外贸行业&#xff0c;数字化和自动化的应用已成为一种趋势和必然。在本文中&#xff0c;我们将探讨数字化和自动化对外贸行业的影响和挑战&#xff0c;…

Windows环境下实现设计模式——解释器模式(JAVA版)

我是荔园微风&#xff0c;作为一名在IT界整整25年的老兵&#xff0c;今天总结一下Windows环境下如何编程实现解释器模式&#xff08;设计模式&#xff09;。 不知道大家有没有这样的感觉&#xff0c;看了一大堆编程和设计模式的书&#xff0c;却还是很难理解设计模式&#xff…

巧用千寻位置GNSS软件|CAD功能全解析

千寻位置GNSS软件中的CAD功能&#xff0c;用于已有 CAD的图形的导入和编辑&#xff0c;并且可以对 CAD图形已有线条进行线放样&#xff0c;在日常测绘工作中十分常见。下面向各位介绍CAD功能的使用技巧。点击【测量】->【CAD】&#xff0c;进入 CAD功能如图 5.3-1所示。以下…

三、线程状态【3/12】【多线程】

线程的状态3. 线程的状态3.1 观察线程的所有状态3.2 线程状态和状态转移的意义3.3 观察线程的状态和转移3. 线程的状态 3.1 观察线程的所有状态 线程的状态是一个枚举类型 Thread.State public class ThreadState {public static void main(String[] args) {for (Thread.State…

项目7:(aliyun)实现短信的发送和验证微服务和上传文件删除文件微服务

项目7&#xff1a;实现短信的发送和验证 1.对gulimall-common补充 2.短信验证的流程&#xff08;aliyun的sms&#xff09; 3.具体接口的编写&#xff08;新建微服务service-sms&#xff09; 4.上传和删除文件流程&#xff08;aliyun的oss&#xff09; 5.具体接口的编写&am…

区块链智能合约开发学习

最近正在肝区块链知识学习&#xff0c;入手学习智能合约的开发&#xff0c;由于网上资料实在是太少了&#xff0c;好不容易东拼西凑完成了智能合约的开发、编译、部署、web3js调用&#xff08;网页页面&#xff09;和web3j调用&#xff08;java调用&#xff09;&#xff0c;赶紧…

Linux 内存回收,思维导图记录

最近天天跟内存斗智斗勇&#xff0c;整理下学习的记录 一些图片 参考 Tuning Linux Kernel Parameters For PostgreSQL Optimization PostgreSQL recommendations - Documentation for BMC Client Management 12.6 - BMC Documentation PostgreSQL load tuning on Red Hat E…

【vSphere | Python】vSphere Automation SDK for Python Ⅵ—— VM Guest Processes APIs

目录12. VM APIs12.1 VM Guest Processes APIsProcesses 进程Operations 操作&#xff08;1&#xff09;List Guest Processes&#xff08;2&#xff09;Get Guest Processes&#xff08;3&#xff09;Create Guest Processes&#xff08;4&#xff09;Delete Guest Processes参…

PaddleHub 更改模型默认下载位置

文章目录1.PaddleHub介绍2.PaddleHub安装3.PaddleHub使用中出现的问题4.更改PaddleHub模型的默认下载位置5. PaddleHub的简单使用1.PaddleHub介绍 PaddleHub 是基于 PaddlePaddle 开发的预训练模型管理工具&#xff0c;可以借助预训练模型更便捷地开展迁移学习工作&#xff0c…