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 库的使用方式和语法


参考资料


初心

我所有的文章都只是基于入门,初步的了解;是自己的知识体系梳理,如有错误,道友们一起沟通交流;
如果能帮助到有缘人,非常的荣幸,一切为了部落的崛起;
共勉
相关文章
|
2天前
|
前端开发
vue+ts或者react+ts如何使用animate.css
vue+ts或者react+ts如何使用animate.css
34 0
|
2天前
|
前端开发 JavaScript 开发者
【专栏:HTML与CSS前端技术趋势篇】前端框架(React/Vue/Angular)与HTML/CSS的结合使用
【4月更文挑战第30天】前端框架React、Vue和Angular助力UI开发,通过组件化、状态管理和虚拟DOM提升效率。这些框架与HTML/CSS结合,使用模板语法、样式管理及组件化思想。未来趋势包括框架简化、Web组件标准采用和CSS在框架中角色的演变。开发者需紧跟技术发展,掌握新工具,提升开发效能。
|
2天前
|
前端开发 JavaScript 安全
【亮剑】探讨了在React TypeScript应用中如何通过道具(props)传递CSS样式,以实现模块化、主题化和动态样式
【4月更文挑战第30天】本文探讨了在React TypeScript应用中如何通过道具(props)传递CSS样式,以实现模块化、主题化和动态样式。文章分为三部分:首先解释了样式传递的必要性,包括模块化、主题化和动态样式以及TypeScript集成。接着介绍了内联样式的基本用法和最佳实践,展示了一个使用内联样式自定义按钮颜色的例子。最后,讨论了使用CSS模块和TypeScript接口处理复杂样式的方案,强调了它们在组织和重用样式方面的优势。结合TypeScript,确保了样式的正确性和可维护性,为开发者提供了灵活的样式管理策略。
|
2天前
|
前端开发
【专栏】在 create-react-app 中集成 less/sass 预处理器和 react-css-modules 的方法
【4月更文挑战第29天】本文介绍了在 create-react-app 中集成 less/sass 预处理器和 react-css-modules 的方法。首先,通过 `npm` 安装 less 或 sass 依赖,然后修改 `config-overrides.js` 配置文件以支持 less/sass 编译。接着,详细阐述如何使用 less/sass 编写样式。再者,安装 react-css-modules 并配置 webpack,使能样式模块化。最后,展示了如何结合使用 less/sass 和 react-css-modules,以提升前端开发的效率和代码质量。
|
2天前
|
前端开发
最新版本create-react-app 如何使用css-module
最新版本create-react-app 如何使用css-module
18 0
|
2天前
|
前端开发
React中css的module
React中css的module
|
2天前
|
移动开发 HTML5
HTML5/CSS3粒子效果进度条代码
HTML5/CSS3进度条应用。这款进度条插件在播放进度过程中出现粒子效果,就像一些小颗粒从进度条上散落下来
18 0
HTML5/CSS3粒子效果进度条代码
|
2天前
|
移动开发 前端开发 JavaScript
:掌握移动端开发:HTML5 与 CSS3 的高效实践
:掌握移动端开发:HTML5 与 CSS3 的高效实践 “【5月更文挑战第6天】”
27 1
|
2天前
|
缓存 移动开发 前端开发
【专栏:HTML与CSS前端技术趋势篇】HTML与CSS在PWA(Progressive Web Apps)中的应用
【4月更文挑战第30天】PWA(Progressive Web Apps)结合现代Web技术,提供接近原生应用的体验。HTML在PWA中构建页面结构和内容,响应式设计、语义化标签、Manifest文件和离线页面的创建都离不开HTML。CSS则用于定制主题样式、实现动画效果、响应式布局和管理字体图标。两者协同工作,保证PWA在不同设备和网络环境下的快速、可靠和一致性体验。随着前端技术进步,HTML与CSS在PWA中的应用将更广泛。
|
2天前
|
前端开发 JavaScript UED
【专栏:HTML 与 CSS 前端技术趋势篇】Web 性能优化:CSS 与 HTML 的未来趋势
【4月更文挑战第30天】本文探讨了CSS和HTML在Web性能优化中的关键作用,包括样式表压缩、选择器优化、DOM操作减少等策略。随着未来趋势发展,CSS模块系统、自定义属性和响应式设计将得到强化,HTML新特性也将支持复杂组件构建。同时,应对浏览器兼容性、代码复杂度和性能功能平衡的挑战是优化过程中的重要任务。通过案例分析和持续创新,我们可以提升Web应用性能,创造更好的用户体验。

热门文章

最新文章