css module

article/2025/8/23 10:35:51

css module

  • 一、css module
    • 1.思路
    • 2.实现原理
    • 3.如何应用样式

一、css module

1.思路

通过命名规范来限制类名太过死板,而css in js虽然足够灵活,但是书写不便。
css module 开辟一种全新的思路来解决类名冲突的问题

css module 遵循以下思路解决类名冲突问题:

  1. css的类名冲突往往发生在大型项目中
  2. 大型项目往往会使用构建工具(webpack等)搭建工程
  3. 构建工具允许将css样式切分为更加精细的模块
  4. 同JS的变量一样,每个css模块文件中难以出现冲突的类名,冲突的类名往往发生在不同的css模块文件中
  5. 只需要保证构建工具在合并样式代码后不会出现类名冲突即可

在这里插入图片描述

2.实现原理

在webpack中,作为处理css的css-loader,它实现了css module的思想,要启用css module,需要将css-loader的配置modules设置为true

css-loader的实现方式如下:
在这里插入图片描述
原理极其简单,开启了css module后,css-loader会将样式中的类名进行转换,转换为一个唯一的hash值。

由于hash值是根据模块路径和类名生成的,因此,不同的css模块,哪怕具有相同的类名,转换后的hash值也不一样。
在这里插入图片描述

3.如何应用样式

css module带来了一个新的问题:源代码的类名和最终生成的类名是不一样的,而开发者只知道自己写的源代码中的类名,并不知道最终的类名是什么,那如何应用类名到元素上呢?

为了解决这个问题,css-loader会导出原类名和最终类名的对应关系,该关系是通过一个对象描述的
在这里插入图片描述
这样一来,我们就可以在js代码中获取到css模块导出的结果,从而应用类名了

style-loader为了我们更加方便的应用类名,会去除掉其他信息,仅暴露对应关系

// src/index.js
import style1 from  "./assets/style1.css"
import style2 from "./assets/style2.css"
console.log(style1)
const div1 = document.getElementById("div1");
div1.className = style2.c1;

在这里插入图片描述


http://chatgpt.dhexx.cn/article/N5ZcULgr.shtml

相关文章

css 预处理器

由于多个项目中用到了sass和less,所以就学习了一下相关知识,记录下来方便随时查看。 前言 css是用来编写网站样式,但是,其写法比较一成不变。 如果想要使用 css 实现 js 一样的变量、常量等,就会比较臃肿&#xff0…

【CSS】css快速更改某个字体图标,使用content插入字符

遇到一个小问题:使用的是组件库,但是这个组件没有提供更改图标的接口,需要更改这个特定的图标,但是最好不更改dom 解决办法 由于系统已经使用了这个组件库,那么就有了他的图标内容,可以先到组件库官网找到…

W3C推荐的新布局模式 【CSS Flex布局】详解

本文目录 概述属性弹性容器的属性(父级)displayflex-directionflex-wrapflex-flowjustify-contentalign-itemsalign-contentgap, row-gap, column-gap 弹性项目的属性(子项)orderflex-growflex-shrinkflex-basisflexalign-self 示…

CSS变量(CSS Variables)

概述 如果突然有一天,当你页面的主题色发生变化时,有许多元素的颜色要一起变化,这是你会考虑怎么做呢?使用Less/Sass/Stylus来定义一个颜色变量?还是专门去定义多了个类名来控制元素? 使用第一种方法,有他的弊端,浏览器无法识别CSS预处理器的语法,所以我们都会将Less…

详细介绍css3中的变量使用

CSS3新功能之变量:variables css3为我们提供了一个强大的功能自定义属性,也就是变量,他能让我们更改色系、皮肤、自适配变得简单。我们只需要更改一些我们事先定义好的变量就可以轻松实现各种效果。特别是我们在开发大型项目的时候有多处使用…

详解CSS(一)

🏍️作者简介:大家好,我是亦世凡华、渴望知识储备自己的一名在校大学生 🛵个人主页:亦世凡华、的博客 🛺系列专栏:CSS专栏 🚲给大家推荐一个网站😉很实用😚我…

读书笔记《MySQL技术内幕:InnoDB存储引擎》第5章 索引与算法

索引是应用程序设计和开发的一个重要方面。若索引太多,应用程序的性能可能会受到影响。而索引太少,对查询性能又会产生影响。要找到一个合适的平衡点,这对应用程序的性能至关重要。 一些开发人员总是在事后才想起添加索引——我一直认为&…

32.项目总结--技术点部分

项目整体架构 Docker 虚拟化容器计数,Docker基于镜像,可以秒级启动各种容器,每一种容器都是一个完整的运行环境,容器之间相互隔离; 安装docker 安装前卸载原有的docker yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-lat…

【HCIA-Datacom V1.0培训教材】广域网技术

局域网LAN(Local Area Network) 广域网WAN(Wide Area Network) 数字数据网DDN(Digital Data Network) 帧中继FR(Frame Relay) 同步数字结构SDH(Synchronous Digital Hierachy) …

一文了解Docker容器技术的操作

一文了解Docker容器技术的操作 前言 相信点进这篇文章的Coder,不管是在各大技术论坛上、技术交流群,亦或招聘网上,应该都有见到过Doker容器技术的面孔,随着社会节奏的加快以及迫于生活的压力,在计算机技术日新月异的今…

自然语言处理简介(1)---- 服务梳理与传统汉语分词

文章大纲 1.Nlp技术体系简介1.1 基础技术1.2 Nlp 核心技术1.3 NlP(高端技术) 2.知名NLP 服务系统简介2.1汉语分词系统ICTCLAS2.2 哈工大语言云(Language Technology Platform,LTP)2.3 Amazon Comprehend2.4 阿里云NLP2…

微服务技术栈学习笔记(自用)

微服务技术栈学习笔记(自用) 文章目录 微服务技术栈学习笔记(自用)1.导学2.Eureka2.1微服务远程调用:2.2搭建Eureka 3.Ribbon负载均衡4.Nacos4.1服务注册4.2 分级存储 5.Feign6.Gateway6.1搭建6.2路由断言工厂6.3 过滤…

自然语言处理技术

自然语言处理技术(NLP)在推荐系统中的应用 NLP 推荐系统 词袋模型 阅读7798 作者: 张相於,58集团算法架构师,转转搜索推荐部负责人,负责搜索、推荐以及算法相关工作。多年来主要从事推荐系统以及机器学习…

Java.mob.org.cn搜索_探讨Android全文检索技术

原标题:探讨Android全文检索技术 写在前面 客户端本地存储数据一般使用的存储方式是:文件、SharedPreference、数据库(SQLite) 如果我们要做一些查询的操作,对于文件的方式,通过序列化和反序列化来进行数据的增删改查操作&#xf…

seg:NLP之正向最大匹配分词

已迁移到我新博客,阅读体验更佳seg:NLP之正向最大匹配分词 完整代码实现放在我的github上:click me 一、任务要求 实现一个基于词典与规则的汉语自动分词系统。 二、技术路线 采用正向最大匹配(FMM)方法对输入的中文语句进行分词,具体的实现可以分为下面几个步骤&am…

Elasticsearch搜索技术实战

elasticsearch下载安装 本篇前述的ES版本是7.14.2,实现了与Mysql的数据同步,ES端的搜索与分词;后来由于和Springcloud(spring-data-elasticsearch:3.0.6)集成发现版本问题,换成ES5.5.0,所以完整…

Docker技术

在这里插入代码片# Docker 官方文档地址:https://www.docker.com/get-started 中文参考手册:https://docker_practice.gitee.io/zh-cn/ 1.什么是 Docker 1.1 官方定义 最新官网首页 # 1.官方介绍 - We have a complete container solution for you - no matter who you are…

Elasticsearch - 文档分析,IK分词器;文档冲突(十二)

阅读本文前可先参考 Elasticsearch - Elasticsearch详解;安装部署(一)_MinggeQingchun的博客-CSDN博客 https://blog.csdn.net/MinggeQingchun/article/details/126855747 一、文档分析 文档分析过程如下: 1、将一块文本分成适…

springboot+Elasticsearch实现word,pdf,txt内容抽取并高亮分词全文检索

文章目录 需求 一、环境 二、功能实现 1.搭建环境 2.文件内容识别 三.代码 需求 产品希望我们这边能够实现用户上传PDF,WORD,TXT之内得文本内容,然后用户可以根据附件名称或文件内容模糊查询文件信息,并可以在线查看文件内容 一、环境 项目开发环境&…

使用lucce分词怎么_ElasticSearch 分词器,了解一下

这篇文章主要来介绍下什么是 Analysis ,什么是分词器,以及 ElasticSearch 自带的分词器是怎么工作的,最后会介绍下中文分词是怎么做的。 首先来说下什么是 Analysis: 什么是 Analysis? 顾名思义,文本分析就…