• css-loader 提供了一种叫做 CSS Modules 的方案,可以帮我们自动生成唯一的类名,不会和其他模块的命名出现冲突
  • 要使用 CSS Modules 有几个步骤,首先需要在 webpack 的配置文件中打开相关的配置
{test: /\.less$/,include: path.resolve('./src'),use: [MiniCssExtractPlugin.loader,{loader: 'css-loader',options: {modules: {localIdentName: '[local]-[hash:5]'}}},'less-loader']
}

上面配置的意思是我们对 src 下面的 .less 文件启用 modules 转换,转换的格式模板为 [local]-[hash:5],其中 hash 是根据文件名和类名确定的,所以不会冲突,因为 CSS Modules 会改变输出的类名,我们只能对自己写的代码进行适配。
经过上面的配置之后,我们在代码中导入的 less 文件返回的就是一个键值对了,其中键名是原始的类名或 ID 名,键值就是转换输出之后的名字,如:

{btns: "btns-bdd41",body: "body-dab49"
}

所以我们就不能在 JSX 中填写固定的类名了,需要使用变量的方式,如下

import * as React from 'react'
import style from './style.less'export default class Main extends React.Component {render() {return (<div className={style.body}><div className={style.btns}></div></div>)}
}

CSS Modules 会转换所有的类名和 ID 名,如果有些名字我们不想让它转换,可以使用 :global(),如:

:global(#app) {background-color: #f4f4f4;
}

CSS Modules相关推荐

  1. CSS Modules 用法教程

    学过网页开发就会知道,CSS 不能算编程语言,只是网页样式的一种描述方法. 为了让 CSS 也能适用软件工程方法,程序员想了各种办法,让它变得像一门编程语言.从最早的Less.SASS,到后来的 Po ...

  2. CSS Modules入门教程

    为什么引入CSS Modules 或者可以这么说,CSS Modules为我们解决了什么痛点.针对以往我写网页样式的经验,具体来说可以归纳为以下几点: 全局样式冲突 过程是这样的:你现在有两个模块,分 ...

  3. [Vue]Scoped Css与Css Modules的区别

    均为解决CSS全局作用域问题(样式冲突(污染))的一个解决方案. 1.Scoped CSS 当 <style> 标签有 scoped 属性时,相当于在元素中添加了一个唯一属性用来区分. & ...

  4. css-modules,可视化介绍CSS Modules是什么?

    你是否曾经为组件设计过样式,却只知道应用了不需要的CSS规则? 也许你会重新考虑CSS的另一个部分,所以规则不适用,或者你会添加!important规则,只是为了让它发挥作用. 这就是CSS Modu ...

  5. css-modules,CSS Modules 方案

    在讲CSS Modules之前,先想想什么是CSS Module? 在我眼中CSS Module是对css进行模块化的管理,更加深入的解释就是用来管理css样式的导入与导出.灵活按需导入以便复用代码, ...

  6. less和sass支持 css modules 一样的局部环境和使用方式,解决重名样式覆盖的问题

    安装 npm install --save-dev node-sass sass-loader css-loader: css-loader 会对 @import 和 url() 进行处理,就像 js ...

  7. 被尤雨溪diss的Native CSS Modules是什么

    前天早上正吃着早饭,唱着歌,开开心心摸鱼时,看到一条尤大的推文: 尤:老实说,我认为Native CSS Modules标准是仓促的,再次显示了参与该标准制定过程的人的傲慢 经常看尤大和其他大佬们交流 ...

  8. webpack 中实现自动识别 CSS Modules

    编者按:本文作者奇舞团前端开发工程师彭体奎 背景 在 React 项目中使用 CSS 时,如果不使用 CSS in JS 的方案,一般会直接在 JS 文件中导入一个 CSS 文件,比如 import ...

  9. 浅谈CSS Modules以及CSS Modules在Vue.js上的使用

    前言 在平常的开发或者学习中,我们可能会有意无意的接触到CSS Modules.那CSS Modules到底是什么呢?现在,我将带你走进CSS Modules,去了解它的始末.本文将从 什么是CSS ...

最新文章

  1. 赵方庆 北京生科院Computational strategies in exploring circular RNAs 探索环状rna的计算策略
  2. 使用java+TestNG进行接口回归测试
  3. tenserflow.js 环境搭建
  4. ACM: 畅通工程-并查集-解题报告
  5. 雅虎因性别歧视成被告 不过这次遭歧视的是男性
  6. mybatis使用全注解的方式案例(包含一对多关系映射)
  7. c# 笔记 数据类型转换 数组 函数
  8. Android立刻终止一个线程
  9. 变量的解构赋值(对象)
  10. socket编程(六)
  11. python的安装以及使用和文本编译器的安装使用
  12. 凸二次规划(convex quadratic programming)问题
  13. Mac修改hosts文件 配置一些IP地址和域名的映射
  14. 20200415 计算机的基础之host配置
  15. fxp连接失败_用FLASHFXP连接站点,总显示连接失败(连接丢失),该怎么办呢
  16. 案牍写作中要留意的问题
  17. 基于阿里云API的图像文字识别
  18. 电话程控交换机 配置
  19. windows下x265下载安装与配置
  20. 考研数学汤家凤 暑期答疑合集

热门文章

  1. VScode的撤销操作的快捷键
  2. Java垃圾回收之新生代垃圾收集器
  3. 手撸一个JdbcTemplate,带你了解其原理
  4. 文件流处理流式处理大数据处理
  5. 一个框架看懂优化算法之异同 SGD/AdaGrad/Adam
  6. Python机器学习——DBSCAN聚类
  7. 在idea使用maven工程建立web项目时,启动Tomcat访问不到项目首页。
  8. 汇编语言将数据、代码、栈放入不同段基础
  9. 使用Tensor Expression张量表达式处理算子
  10. 2021年大数据Kafka(四):❤️kafka的shell命令使用❤️