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

news/2024/7/15 20:25:00 标签: react.js, javascript, 前端, css模块化

在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.niftyadmin.cn/n/225172.html

相关文章

Spring Security 02 搭建环境

搭建环境 导入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency><groupId>org.springframework.boot</groupId><artifa…

android so库导致的闪退及tombstone分析

android中有3种crash情况&#xff1a;未捕获的异常、ANR和闪退。未捕获的异常一般用crash文件就可以记录异常信息&#xff0c;而ANR无响应表现就是界面卡着无法响应用户操作&#xff0c;而闪退则是整个app瞬间退出&#xff0c;个人感觉对用户造成的体验最差。闪退一般是由于调用…

set和map的区别

1.Map是键值对&#xff0c;Set是值的集合&#xff0c;当然键和值可以是任何的值&#xff1b; 2.Map可以通过get方法获取值&#xff0c;而set不能因为它只有值&#xff1b; 3.都能通过迭代器进行for...of遍历&#xff1b; 4.Set的值是唯一的可以做数组去重&#xff0c;Map由于…

vuex中的 mapState, mapMutations

vuex中的 mapState&#xff0c; mapMutations Start 今天使用vuex的过程中&#xff0c;遇到 mapState&#xff0c; mapMutations 这么两个函数&#xff0c;今天学习一下这两个函数。 本文介绍的vuex基于 vuex3.0 1. 官方文档说明 1.1 mapState 官方解释 点击这里&#xff1…

4.10、字节序列转换函数

4.10、字节序列转换函数1.字节序转换函数2.字节序转换函数有哪些3.字节序转换函数的使用1.字节序转换函数 当格式化的数据在两台使用不同字节序的主机之间直接传递时&#xff0c;接收端必然错误的解释之。解决问题的方法是&#xff1a;发送端总是把要发送的数据转换成大端字节…

正版软件 Directory Opus 12 Pro Windows 平台上的资源管理器,定是功能完全、可定制化程度高的那款。

Directory Opus 是一款 Windows 平台上的资源管理器&#xff0c;定是功能最完全、可定制化程度最高的那款。你可以通过它完成几乎所有操作&#xff0c;包括查看图片元信息、预览图片、阅读文本文件内容、批量重命名、操作压缩文件以及 FTP 同步请求等。 Directory Opus 是一款由…

CSS学习(1) - 选择器与背景颜色

文章首发于&#xff1a;欢迎大佬们前来逛逛 CSS的组成 css由选择器和声明块组成。 body 和 p 都是选择器&#xff0c;其中 : 前面的叫做属性&#xff0c;后面的叫做属性值&#xff0c;可以根据他们来设置HTML标签的样式。 body{background-color: lightblue; } p{font-fami…

android 12.0 删除连接wifi的配置信息

1.前言 在12.0的系统rom产品定制化开发中,对于wifi的功能定制需求功能也是挺多的,目前对于wifi模块有这么个需求,要求在 提供接口实现删除已连接wifi的需求,所以需要了解wifi相关的配置情况,然后移除wifi即可 2.删除连接wifi的配置信息的核心类 packages/modules/Wifi/…