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

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

在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>)
  }
}
  • 查看效果

image.png

从上图我们看到字体颜色中我们的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:查看效果

image.png

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

总结

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

相关文章
|
前端开发 算法 JavaScript
React-组件-内联样式 和 React-组件-列表渲染优化
React-组件-内联样式 和 React-组件-列表渲染优化
95 0
|
7月前
|
前端开发 JavaScript
react 修改 antdesign 的 组件默认样式
react 修改 antdesign 的 组件默认样式
274 0
|
2月前
|
设计模式 缓存 前端开发
React中样式解决方案有哪些?
本文首发于微信公众号“前端徐徐”,探讨了React开发中的样式管理方法,包括内联样式、常规CSS、CSS-Module、CSS-in-JS及使用CSS框架等五种常见方案,分析了各自的优缺点,帮助开发者根据项目需求选择合适的样式解决方案。
59 0
|
4月前
|
前端开发 Java UED
JSF 面向组件开发究竟藏着何种奥秘?带你探寻可复用 UI 组件设计的神秘之路
【8月更文挑战第31天】在现代软件开发中,高效与可维护性至关重要。JavaServer Faces(JSF)框架通过其面向组件的开发模式,提供了构建复杂用户界面的强大工具,特别适用于设计可复用的 UI 组件。通过合理设计组件的功能与外观,可以显著提高开发效率并降低维护成本。本文以一个具体的 `MessageComponent` 示例展示了如何创建可复用的 JSF 组件,并介绍了如何在 JSF 页面中使用这些组件。结合其他技术如 PrimeFaces 和 Bootstrap,可以进一步丰富组件库,提升用户体验。
59 0
|
4月前
|
前端开发 JavaScript 开发者
【前端革新力】React与CSS-in-JS完美邂逅:从styled-components到emotion,全面解析样式管理新趋势的实战应用与优势剖析!
【8月更文挑战第31天】CSS-in-JS 作为一种新兴的样式管理方式,近年来在前端社区受到广泛关注。它将样式嵌入 JavaScript,实现了样式与逻辑的高度耦合,提升了开发效率并解决了全局样式污染等问题。本文通过具体代码示例,探讨 CSS-in-JS 在 React 开发中的应用,并分享实践心得。首先介绍了 CSS-in-JS 的基本概念,然后详细展示了如何使用 styled-components 和 emotion 这两个流行库创建样式化组件。
214 0
|
6月前
|
JSON 弹性计算 前端开发
函数计算产品使用问题之遇到在自定义运行时部署React项目时遇到样式无法正常加载。一般是什么导致的
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
7月前
|
前端开发 JavaScript 安全
【亮剑】探讨了在React TypeScript应用中如何通过道具(props)传递CSS样式,以实现模块化、主题化和动态样式
【4月更文挑战第30天】本文探讨了在React TypeScript应用中如何通过道具(props)传递CSS样式,以实现模块化、主题化和动态样式。文章分为三部分:首先解释了样式传递的必要性,包括模块化、主题化和动态样式以及TypeScript集成。接着介绍了内联样式的基本用法和最佳实践,展示了一个使用内联样式自定义按钮颜色的例子。最后,讨论了使用CSS模块和TypeScript接口处理复杂样式的方案,强调了它们在组织和重用样式方面的优势。结合TypeScript,确保了样式的正确性和可维护性,为开发者提供了灵活的样式管理策略。
80 0
|
前端开发
react解决页面样式冲突(module)
react解决页面样式冲突(module)
|
前端开发
React-组件-外链样式
React-组件-外链样式
54 0
|
前端开发
React-组件-CSS模块化
React-组件-CSS模块化
65 0