react 中引入css的方式

简介: react 中引入css的方式

1. 前言

  1. react 中 写css 比较麻烦,总结下有哪些

2. 普通的 CSS 文件引入:

  1. 在 React 组件中使用import语句引入外部的 CSS 文件,然后直接在 JSX 中应用类名或样式。
  2. 这种方式可以使用任何 CSS 预处理器(如 Sass、Less)。
  3. 样式在全局范围内生效,需要注意样式的命名冲突问题。

上 demo

// styles.css
.container {
  background-color: #f0f0f0;
  padding: 20px;
}
// Component.jsx
import React from 'react';
import './styles.css';
const Component = () => {
  return (
    <div className="container">
      <h1>Hello, World!</h1>
    </div>
  );
};
export default Component;

3. CSS 模块化:

  1. 使用 CSS 模块化可以将 CSS 文件与组件进行关联,使得每个组件的样式只在当前组件生效
  2. 使用 import 语句引入 CSS 模块文件,并通过对象的方式获取对应的类名或样式。
  3. 类名在编译时进行哈希处理,避免了全局命名冲突问题

上demo

// Component.module.css
.container {
  background-color: #f0f0f0;
  padding: 20px;
}
// Component.jsx
import React from 'react';
import styles from './Component.module.css';
const Component = () => {
  return (
    <div className={styles.container}>
      <h1>Hello, World!</h1>
    </div>
  );
};
export default Component;

4. CSS-in-JS:

  1. 使用 CSS-in-JS库(如 styled-components、Emotion)可以直接在组件中定义和应用样式。
  2. 样式以 JavaScript对象模板字符串的形式嵌入到组件中,可以使用 JavaScript 语法进行动态样式处理。
  3. 样式作用于具体的组件实例,避免了全局样式冲突的问题。

上 demo

import React from 'react';
import styled from 'styled-components';
const Container = styled.div`
  background-color: #f0f0f0;
  padding: 20px;
`;
const Component = () => {
  return (
    <Container>
      <h1>Hello, World!</h1>
    </Container>
  );
};
export default Component;

5. 区别 咱还是用 表格对比吧

普通 CSS 文件引入 CSS 模块化 CSS-in-JS
引入方式 使用 import 引入外部 CSS 文件 使用 import 引入 CSS 模块文件 使用相应的 CSS-in-JS 库
类名命名冲突问题 可能会发生全局命名冲突 通过哈希处理类名,避免全局命名冲突 不会发生命名冲突
样式作用范围 全局范围内生效 组件内部作用,避免全局影响 组件内部作用,避免全局影响
动态样式处理 需要在样式文件中使用预处理器或动态类名的技巧 无需特殊处理,直接在组件中应用动态样式 直接在组件中使用 JavaScript 语法进行动态样式处理
代码复用性 可以在多个组件中共用相同的 CSS 文件 样式与组件关联,可复用,但需要通过对象的方式获取样式类名 样式与组件关联,可复用,直接在组件中定义和应用样式
工具生态支持 支持各种 CSS 预处理器和构建工具 部分构建工具和框架对 CSS 模块化有内置支持 CSS-in-JS 库提供丰富的工具和特性支持
学习曲线 相对较低,使用常见的 CSS 语法 需要了解 CSS 模块化的基本概念和使用方式 需要学习相应的 CSS-in-JS 库的使用方式和语法


参考资料


初心

我所有的文章都只是基于入门,初步的了解;是自己的知识体系梳理,如有错误,道友们一起沟通交流;
如果能帮助到有缘人,非常的荣幸,一切为了部落的崛起;
共勉
相关文章
|
1月前
|
前端开发 JavaScript
React Tailwind CSS
10月更文挑战第12天
9 1
|
1月前
|
前端开发 容器
React 使用 CSS 样式
10月更文挑战第12天
28 0
|
2月前
|
JavaScript 前端开发
react Or vue中引入animate.css
本文介绍了如何在React或Vue项目中引入animate.css库来使用动画效果,包括通过npm安装或在线链接引入,并展示了如何在React组件和Vue路由过渡中使用动画类。
57 0
|
3月前
|
前端开发 Java UED
JSF 面向组件开发究竟藏着何种奥秘?带你探寻可复用 UI 组件设计的神秘之路
【8月更文挑战第31天】在现代软件开发中,高效与可维护性至关重要。JavaServer Faces(JSF)框架通过其面向组件的开发模式,提供了构建复杂用户界面的强大工具,特别适用于设计可复用的 UI 组件。通过合理设计组件的功能与外观,可以显著提高开发效率并降低维护成本。本文以一个具体的 `MessageComponent` 示例展示了如何创建可复用的 JSF 组件,并介绍了如何在 JSF 页面中使用这些组件。结合其他技术如 PrimeFaces 和 Bootstrap,可以进一步丰富组件库,提升用户体验。
55 0
|
3月前
|
前端开发 JavaScript 开发者
【前端革新力】React与CSS-in-JS完美邂逅:从styled-components到emotion,全面解析样式管理新趋势的实战应用与优势剖析!
【8月更文挑战第31天】CSS-in-JS 作为一种新兴的样式管理方式,近年来在前端社区受到广泛关注。它将样式嵌入 JavaScript,实现了样式与逻辑的高度耦合,提升了开发效率并解决了全局样式污染等问题。本文通过具体代码示例,探讨 CSS-in-JS 在 React 开发中的应用,并分享实践心得。首先介绍了 CSS-in-JS 的基本概念,然后详细展示了如何使用 styled-components 和 emotion 这两个流行库创建样式化组件。
155 0
|
6月前
|
前端开发 JavaScript 开发者
【专栏:HTML与CSS前端技术趋势篇】前端框架(React/Vue/Angular)与HTML/CSS的结合使用
【4月更文挑战第30天】前端框架React、Vue和Angular助力UI开发,通过组件化、状态管理和虚拟DOM提升效率。这些框架与HTML/CSS结合,使用模板语法、样式管理及组件化思想。未来趋势包括框架简化、Web组件标准采用和CSS在框架中角色的演变。开发者需紧跟技术发展,掌握新工具,提升开发效能。
106 11
|
6月前
|
前端开发 JavaScript 安全
【亮剑】探讨了在React TypeScript应用中如何通过道具(props)传递CSS样式,以实现模块化、主题化和动态样式
【4月更文挑战第30天】本文探讨了在React TypeScript应用中如何通过道具(props)传递CSS样式,以实现模块化、主题化和动态样式。文章分为三部分:首先解释了样式传递的必要性,包括模块化、主题化和动态样式以及TypeScript集成。接着介绍了内联样式的基本用法和最佳实践,展示了一个使用内联样式自定义按钮颜色的例子。最后,讨论了使用CSS模块和TypeScript接口处理复杂样式的方案,强调了它们在组织和重用样式方面的优势。结合TypeScript,确保了样式的正确性和可维护性,为开发者提供了灵活的样式管理策略。
75 0
|
3月前
|
前端开发
2s 利用 HTML+css动画实现企业官网效果
2s 利用 HTML+css动画实现企业官网效果
HTML+CSS 实现通用的企业官网页面(记得收藏)
HTML+CSS 实现通用的企业官网页面(记得收藏)