在React项目中使用css modules

这篇具有很好参考价值的文章主要介绍了在React项目中使用css modules。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、为什么使用css modules

局部性(Local Scoping): 在使用CSS Modules时,每个CSS类名是动态生成的,它们只在对应的组件中有效,不会影响其他组件或全局样式表。这样,你可以在组件中使用相同的类名,而不需要担心命名冲突

唯一性(Uniqueness) :在编译过程中,CSS Modules会自动生成独一无二的类名,并将其映射到对应的组件。这样,可以确保每个组件的类名是唯一的,避免了全局命名冲突的问题

自动类名映射(Automatic Class Name Mapping): 使用CSS Modules后,你无需手动管理类名映射关系,它们会在编译时自动处理。你只需要在组件文件中使用导入的样式对象,并将对应的类名应用到组件的元素上。

代码可维护性(Code Maintainability): CSS Modules提供了更好的代码隔离性,使得每个组件的样式独立维护和修改。通过将CSS文件与对应的组件文件放在一起,可以更轻松地追踪和修改组件的样式

二、如何使用css modules

1. 安装依赖

在React项目根目录下运行命令

npm install --save-dev css-loader style-loader

2. 配置Webpack

若你使用的是Create React App,Webpack的配置已经在底层处理过。否则,在Webpack配置文件(通常是webpack.config.js)中添加以下规则:

{
  test: /\.css$/,
  use: [
    'style-loader',
    {
      loader: 'css-loader',
      options: {
        importLoaders: 1,
        modules: {
          localIdentName: '[name]__[local]__[hash:base64:5]', // 修改CSS类名的生成格式
        },
      },
    },
    'postcss-loader', // 如果有其他的CSS预处理器,比如autoprefixer,可以在此添加
  ],
}

3. 创建css文件

在React项目的组件目录下,创建一个CSS文件。例如,创建一个名为styles.module.css的文件
== 注意:Create React App创建的react项目中,默认是开启 CSS Module 的。但是对于样式文件的命名有一个约束,需要以.module.less/css/sass结尾==

  • 在React项目中,通常建议将组件的相关文件(包括CSS文件)放置在与组件对应的文件夹中,可以是在src目录下或者是在组件所在目录下的子文件夹中。

  • 一种常见的组织方式是在src目录下创建一个名为components的文件夹,然后在其中放置各个组件的文件夹。每个组件文件夹中包含组件的代码文件以及相关的CSS文件。

src/
├── components/
│   ├── MyComponent/
│   │   ├── MyComponent.js
│   │   ├── styles.css       <- 在React项目的组件目录下创建的CSS文件
│   │   └── ...
│   ├── AnotherComponent/
│   │   ├── AnotherComponent.js
│   │   ├── styles.css
│   │   └── ...
│   └── ...
├── App.js
├── index.js
└── ...

4. 使用css modules

在CSS文件中,可以定义样式并使用独特的类名。这些类名将在编译时生成,并自动与React组件关联

.container {
  width: 100%;
  max-width: 600px;
  margin: 0 auto;
}

.title {
  font-size: 24px;
  color: blue;
}

/* 可以通过以下方式定义全局样式 */
:global {
  .global-style {
    color: red;
  }
}

5. 在React组件中使用CSS Modules

在React组件中引入CSS模块,并将其应用到相应的元素.文章来源地址https://www.toymoban.com/news/detail-861767.html

import React from 'react';
import styles from './styles.css'; // 导入CSS模块样式

function MyComponent() {
  return (
    <div className={styles.container}>
      <h1 className={styles.title}>Hello, CSS Modules!</h1>
      <p className={styles['global-style']}>This is a global style.</p>
    </div>
  );
}

export default MyComponent;

到了这里,关于在React项目中使用css modules的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • React refers to UMD global, but the current file is a module vite初始化react项目

    初始化项目 在执行完上面的命令后,npm 首先会自动下载create-vite这个第三方包,然后执行这个包中的项目初始化逻辑。输入项目名称之后按下回车,此时需要选择构建的前端框架: 选中react后们还有个选项,我们选择typescript 切换到项目按照依赖后跑起来   React refers to UMD

    2024年02月09日
    浏览(51)
  • react引入antd报错找不到antd/dist/antd.css Module not found: Error: Can‘t resolve ‘antd/dist/antd.css‘ in

    直接使用了yarn add antd 命令安装,默认安装的是最新的5.0.0的版本 按照官网在App.css引入  报错  观察引入路径,去node_modules查找  发现antd/dist中并没有css相关文件,仅有js相关文件 卸载之前的antd  尝试降低版本,yarn指定版本号   安装成功,查看node_modules,现在就全了    按照

    2024年02月16日
    浏览(64)
  • React+Node——next.js 构建前后端项目

    一、安装全局依赖 二、创建next项目 三、加载mysql依赖 四、运行项目 五、创建db文件目录,目录下创建index.ts 六、创建pages文件目录,目录下创建api文件目录,api目录下创建user.ts 请求地址 http://localhost:3000/api/user 七、在pages目录下创建user.tsx 页面访问地址 http://localhost:3000/user

    2024年02月07日
    浏览(44)
  • React 配置别名 @ ( js/ts 项目中通过 webpack.config.js 配置)

    在 Vue 项目当中,可以使用  @  来表示  src/ ,但在 React 项目中,默认却没有该功能,因此需要进行手动的配置来实现该功能。 别名主要解决的问题:每个页面都使用路径的方式进行引入,这样很麻烦,效率很低,这个时候可以配置一个别名,来直接使用别名引入。 使用

    2024年02月09日
    浏览(45)
  • React Dva项目 简单引入models中的所有JS文件

    我们前面接触的 Dva项目 models目录下的文件还要一个一个引入 其实体验并不是很好 而且如果项目很大那就比较麻烦了 我们可以在 models 下创建一个 index.js 文件 编写代码如下 这也是通过正则去拿到同级所有的js文件 然后 在根目录下的src下的index.js中 引入Model处改成这样 这样

    2024年02月13日
    浏览(40)
  • React 配置别名 @ ( js/ts 项目中通过 @craco/craco 配置)

    在 Vue 项目当中,可以使用 @ 来表示 src/ ,但在 React 项目中,默认却没有该功能,因此需要进行手动的配置来实现该功能。 别名主要解决的问题:每个页面都使用路径的方式进行引入,这样很麻烦,效率很低,这个时候可以配置一个别名,来直接使用别名引入。 使用 @craco

    2024年02月10日
    浏览(43)
  • React项目规范:目录结构、根目录别名、CSS重置、路由、redux、二次封装axios

    先创建项目: create-react-app 项目名 ,然后换个图标,换个标题 配置 jsconfig.json :这个文件在Vue通过脚手架创建项目时自动生成, React是没有自动生成, jsconfig.json 是为了让vs code的代码提示更友好, 按需求决定是否配置; 对 src 文件夹的目录进行初始化: 1、安装craco: npm install

    2023年04月08日
    浏览(51)
  • 【实战】 TS 应用:JS神助攻 - 强类型 —— React17+React Hook+TS4 最佳实践,仿 Jira 企业级项目(三)

    学习内容来源:React + React Hook + TS 最佳实践-慕课网 相对原教程,我在学习开始时(2023.03)采用的是当前最新版本: 项 版本 react react-dom ^18.2.0 react-router react-router-dom ^6.11.2 antd ^4.24.8 @commitlint/cli @commitlint/config-conventional ^17.4.4 eslint-config-prettier ^8.6.0 husky ^8.0.3 lint-staged ^13.1.2 p

    2024年02月09日
    浏览(48)
  • 【实战】三、TS 应用:JS神助攻 - 强类型 —— React17+React Hook+TS4 最佳实践,仿 Jira 企业级项目(三)

    学习内容来源:React + React Hook + TS 最佳实践-慕课网 相对原教程,我在学习开始时(2023.03)采用的是当前最新版本: 项 版本 react react-dom ^18.2.0 react-router react-router-dom ^6.11.2 antd ^4.24.8 @commitlint/cli @commitlint/config-conventional ^17.4.4 eslint-config-prettier ^8.6.0 husky ^8.0.3 lint-staged ^13.1.2 p

    2024年02月11日
    浏览(54)
  • 【webpack学习】React项目中webpack.config.js 和 webpack.base.config.js 的区别

    在React项目中,通常使用Webpack作为打包工具。 webpack.config.js 和 webpack.base.config.js 两个文件在项目中的作用是不同的。 webpack.config.js 是Webpack的主要配置文件,它包含了项目的通用配置以及针对不同环境(如开发环境和生产环境)的特定配置。 这个文件包含了整个Webpack配置的

    2024年01月23日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包