当前位置: 首页 > article >正文

react - css modules的模块化方案

文章目录一、什么是 css modules二、如何在 Vite 中使用 css modules三、解决css modules调试时类名变掉的问题为什么类名会变调试时的应对方案1. 配置保留可读类名推荐开发环境2. 使用 Source Map3. React DevTools 辅助最佳实践总结一、什么是 css modules因为 React 没有 Vue 的Scoped但是 React 又是 SPA(单页面应用)所以需要一种方式来解决 css 的样式冲突问题也就是把每个组件的样式做成单独的作用域实现样式隔离而 css modules 就是一种解决方案但是我们需要借助一些工具来实现;比如 webpackpostcsscss-loadervite 等。二、如何在 Vite 中使用 css modulescss modules可以配合各种 css 预处理去使用例如 lesssassstylus 等。npm install less-D# 安装less 任选其一 npm install sass-D# 安装sass 任选其一 npm install stylus-D# 安装stylus 任选其一[!TIP] 在Vite 中 css Modules是开箱即用的只需要把文件名设置为 xxx.module.[css|less|sass|stylus]就可以使用 css modules 了。src/components/Button/index.module.scss.button { color: red; }src/components/Button/index.tsx//使用方法直接引入即可 import styles from ./index.module.scss; export default function Button() { return button className{styles.button}按钮/button; }编译结果, 可以看到 button 类名被编译成了 button_pmkzx_6这就是 css modules 的实现原理通过在类名前添加一个唯一的哈希值来实现样式隔离。buttonclassbutton_pmkzx_6按钮/button三、解决css modules调试时类名变掉的问题在 React 中使用 CSS Modules*.module.scss时浏览器 DevTools 中看到的类名会变成类似ComponentName_hash__classname的格式这是 CSS Modules 的作用域隔离机制导致的属于正常行为。为什么类名会变CSS Modules 通过构建工具Webpack/Vite 等在编译时添加哈希值确保类名全局唯一防止样式冲突保持可读性通常保留原始类名作为前缀如Button_module_button__3x7a9调试时的应对方案1. 配置保留可读类名推荐开发环境Webpack 配置// webpack.config.js{loader:css-loader,options:{modules:{localIdentName:[local]__[hash:base64:6]// 开发环境// 生产环境: [hash:base64:8]}}}Vite 配置// vite.config.jsexportdefault{css:{modules:{// 自定义生成的类名格式 原类名短哈希generateScopedName:[local]__[hash:base64:6],}}}效果button__3x7a91原类名短哈希如图所示2. 使用 Source Map确保构建工具开启 CSS Source Map// webpackdevtool:source-map// 或 eval-source-map// vitecss:{devSourcemap:true}这样 DevTools 的 Elements 面板会显示原始类名Sources 面板可定位到 SCSS 源文件。3. React DevTools 辅助安装React Developer Tools浏览器扩展Components 面板选中组件后右侧可看到className的完整计算值配合 “Highlight updates” 功能追踪样式变化最佳实践总结// 推荐配置开发 vs 生产constcssModulesConfigisDev?[path][name]__[local]--[hash:base64:5]// 包含路径更易定位:[hash:base64:8];// 生产环境压缩这样调试时你能看到类似src-components-Button__primary--a3f9b的类名既保留了可读性又有隔离保障。点击进入我的网站

相关文章:

react - css modules的模块化方案

文章目录一、什么是 css modules二、如何在 Vite 中使用 css modules三、解决css modules调试时类名变掉的问题为什么类名会变?调试时的应对方案1. 配置保留可读类名(推荐开发环境)2. 使用 Source Map3. React DevTools 辅助最佳实践总结一、…...

RexUniNLU惊艳案例:电商‘这个手机能分期吗?月付多少?’双意图联合识别

RexUniNLU惊艳案例:电商这个手机能分期吗?月付多少?双意图联合识别 1. 案例背景与价值 在日常电商客服场景中,用户经常会提出包含多个意图的复合问题。比如"这个手机能分期吗?月付多少?"这样的…...

寻音捉影·侠客行AI办公提效:HR面试录音自动标记‘稳定性’‘薪资’关键词

寻音捉影侠客行AI办公提效:HR面试录音自动标记‘稳定性’‘薪资’关键词 想象一下这个场景:你是一位HR,刚刚结束了一场长达一小时的面试。候选人滔滔不绝,从项目经历聊到职业规划,信息量巨大。现在,你需要…...

计算机视觉opencv之读取图片灰度图区域选取视频播放提取颜色通道移除通道

计算机视觉的实现我们需要下载两个第三方库 win键r键,cmd打开命令行 pip install 库名 -i 镜像地址 (前面的文章中有第三方库 的下载,感兴趣的可以参考https://blog.csdn.net/2201_75573294/article/details/155455973?fromshareblogdeta…...

Nano-Banana Turbo LoRA详解:轻量化模型如何实现爆炸图精准还原

Nano-Banana Turbo LoRA详解:轻量化模型如何实现爆炸图精准还原 1. 为什么产品拆解图总“不像官方”?一个被忽视的视觉语言问题 你有没有试过用常规文生图模型生成产品爆炸图,结果部件东倒西歪、标注模糊、间距混乱,怎么看都不像…...

深度学习之优化模型(数据预处理,数据增强,调整学习率)

一、模型的准备这次我们使用的数据集是一共有20种的食物图片其中各种食物文件夹中食物图片现在我们对这个文件生成对应的train.txt和test.txt功能:创建训练集/测试集的标签文件 参数: root:数据集根目录 dir:子目录名import os#导…...

MogFace人脸检测简单调用:Python API封装与Streamlit前端集成方法

MogFace人脸检测简单调用:Python API封装与Streamlit前端集成方法 1. 项目概述 MogFace是2022年CVPR会议上提出的一种高精度人脸检测模型,基于ResNet101架构设计,在检测多尺度、多姿态和遮挡人脸方面表现出色。本文将介绍如何通过简单的Pyt…...

深度学习之神经网络的构建和实现

一、卷积神经网络CNN图象在计算机中是一对按照顺序排列的数字,数字在0~255之间1.卷积层卷积是什么:对图像(不同的窗口数据)和卷积核(一组固定的权重:因为每个神经元的多个权重固定,所以又可以看…...

清音刻墨效果惊艳:Qwen3支持ASR后编辑(post-editing)的增量式字幕刻墨

清音刻墨效果惊艳:Qwen3支持ASR后编辑(post-editing)的增量式字幕刻墨 你有没有遇到过这样的烦恼?辛辛苦苦做了一段视频,上传到平台后,发现自动生成的字幕时间轴对不上,要么字幕提前消失&#…...

乙巳马年春联生成终端部署教程:GPU显存优化下的毫秒级对联生成

乙巳马年春联生成终端部署教程:GPU显存优化下的毫秒级对联生成 1. 教程目标与价值 想在新年活动中,用一个极具视觉冲击力的AI应用来吸引眼球吗?今天要介绍的这个“皇城大门春联生成终端”,就能帮你实现这个想法。 这不是一个普…...

丹青识画开源模型部署教程:支持FP16量化与TensorRT加速推理

丹青识画开源模型部署教程:支持FP16量化与TensorRT加速推理 1. 引言:开启智能影像雅鉴之旅 想象一下,你上传一张普通的照片,系统不仅能准确识别画面内容,还能用优雅的中式书法为你生成富有诗意的描述。这就是「丹青识…...

Bidili Generator效果展示:跨文化元素融合——敦煌壁画风格×未来科技感生成

Bidili Generator效果展示:跨文化元素融合——敦煌壁画风格未来科技感生成 1. 引言:当千年壁画遇见未来科技 想象一下,如果敦煌壁画里的飞天仙女,手持的不是琵琶,而是发光的能量武器;如果壁画中的祥云瑞兽…...

Retinaface+CurricularFace部署教程:CentOS/Ubuntu双系统GPU驱动兼容性验证

RetinafaceCurricularFace部署教程:CentOS/Ubuntu双系统GPU驱动兼容性验证 你是不是也遇到过这样的问题:好不容易在Ubuntu上把一个人脸识别模型跑通了,换到CentOS服务器上,同样的代码、同样的模型,却死活跑不起来&…...

通义千问1.5-1.8B-Chat-GPTQ-Int4效果实测:中文法律文书生成与条款合规性检查

通义千问1.5-1.8B-Chat-GPTQ-Int4效果实测:中文法律文书生成与条款合规性检查 1. 模型介绍与部署验证 通义千问1.5-1.8B-Chat-GPTQ-Int4是一个经过量化压缩的中文语言模型,专门针对聊天对话场景进行了优化。这个模型采用了GPTQ-Int4量化技术&#xff0…...

RVC训练监控技巧:TensorBoard集成与损失曲线可视化

RVC训练监控技巧:TensorBoard集成与损失曲线可视化 1. 引言:为什么训练监控如此重要? 如果你用过RVC(Retrieval-based-Voice-Conversion)训练自己的声音模型,肯定遇到过这样的困惑:训练到底进…...

Qwen3-TTS开源大模型教程:前端CSS动画与后端TTS响应延迟协同优化

Qwen3-TTS开源大模型教程:前端CSS动画与后端TTS响应延迟协同优化 1. 引言:当复古像素风遇上AI语音合成 想象一下,你正在玩一款经典的8-bit像素游戏。你输入一段台词,描述一个“焦急得快要哭出来”的语气,然后点击一个…...

Starry Night Art Gallery应用场景:广告公司AI生成高端品牌视觉提案

Starry Night Art Gallery应用场景:广告公司AI生成高端品牌视觉提案 1. 引言:当广告创意遇见AI艺术馆 想象一下这个场景:一家高端腕表品牌即将发布新品,市场部需要在三天内拿出一套完整的视觉提案,包含主视觉海报、社…...

YOLO12效果展示:同一场景不同光照条件下YOLO12鲁棒性测试集

YOLO12效果展示:同一场景不同光照条件下YOLO12鲁棒性测试集 1. 测试背景与目的 目标检测模型在实际应用中经常面临各种光照条件的挑战。从明亮的正午阳光到昏暗的黄昏光线,再到夜间低照度环境,光照变化会显著影响检测性能。本次测试旨在全面…...

Nano-Banana Studio企业落地:ERP系统对接自动生成BOM可视化附件

Nano-Banana Studio企业落地:ERP系统对接自动生成BOM可视化附件 1. 项目背景与价值 在现代制造业中,BOM(Bill of Materials,物料清单)是产品生产的核心数据。传统ERP系统中的BOM通常以表格形式存在,缺乏直…...

计算机视觉opencv之视频滤波边界填充图像形态学边缘检测

一、视频滤波这里是对一个视频进行读取,并对视频每一帧生成噪声,最后利用中值滤波清理噪声并保持视频清晰import cv2def add_peppersalt_noise(image, n10000):import numpy as npresult image.copy()h, w image.shape[:2]for i in range(n):x np.ran…...

卡证检测矫正模型代码实例:Python调用接口+JSON结果解析示范

卡证检测矫正模型代码实例:Python调用接口JSON结果解析示范 1. 引言 你有没有遇到过这样的场景?需要批量处理一堆身份证、护照或驾照的照片,手动裁剪、矫正角度,不仅效率低下,还容易出错。或者,你的业务系…...

桌面整理规划程序,按使用频率摆放物品,提高找东西速度,工作更专注。

🖥️ 智能桌面整理规划系统 (Smart Desk Organizer)一、实际应用场景描述场景设定:深夜加班的“寻物迷宫”凌晨1点,全栈工程师阿强正在赶一个紧急需求。1. 打断时刻:他需要插入U盘拷贝文件,但在杂乱的桌面上摸索了整整…...

Qwen2.5-VL-7B-Instruct实战教程:构建带历史记录的多轮图文对话Web应用

Qwen2.5-VL-7B-Instruct实战教程:构建带历史记录的多轮图文对话Web应用 1. 项目介绍与准备工作 Qwen2.5-VL-7B-Instruct是一款强大的多模态视觉-语言模型,能够同时理解图像和文本内容,并进行智能对话。本教程将带你从零开始,部署…...

Stable-Diffusion-v1-5-archive风格迁移实战:将照片转为油画/水彩/像素风三步法

Stable-Diffusion-v1-5-archive风格迁移实战:将照片转为油画/水彩/像素风三步法 你是不是也有一堆普通的照片,想给它们换个风格,变成一幅油画、一张水彩画,或者复古的像素风游戏截图?自己学画画太费时间,用…...

Qwen3-ASR-1.7B高性能部署:GPU算力适配RTX4090/3090/3060实测对比

Qwen3-ASR-1.7B高性能部署:GPU算力适配RTX4090/3090/3060实测对比 最近在折腾语音识别项目,发现阿里云通义千问团队开源的Qwen3-ASR-1.7B模型效果确实不错。这个1.7B参数的高精度版本,支持52种语言和方言,识别准确率比之前的0.6B…...

wan2.1-vae新手教程:5分钟掌握提示词书写、负面词设置、尺寸选择核心操作

wan2.1-vae新手教程:5分钟掌握提示词书写、负面词设置、尺寸选择核心操作 你是不是也遇到过这种情况:看到别人用AI生成的图片又美又酷,自己上手一试,出来的图却总是奇奇怪怪,要么是人物多根手指,要么是背景…...

SecGPT-14B部署案例:中小企业安全运营中心(SOC)轻量化AI分析终端搭建

SecGPT-14B部署案例:中小企业安全运营中心(SOC)轻量化AI分析终端搭建 1. 项目背景与价值 在网络安全形势日益严峻的今天,中小企业安全运营中心(SOC)面临着专业人才短缺、分析工具昂贵、响应速度慢等痛点。…...

Qwen2.5-VL-Chord商业应用:机器人导航中视觉-语言对齐方案

Qwen2.5-VL-Chord商业应用:机器人导航中视觉-语言对齐方案 1. 项目简介 1.1 什么是Chord视觉定位服务? Chord是一个基于Qwen2.5-VL多模态大模型的智能视觉定位系统。它能够理解自然语言描述,并在图像中精确定位目标对象,返回准…...

墨语灵犀效果实录:爱尔兰盖尔语民谣→中文乐府体译文的音节与情感映射

墨语灵犀效果实录:爱尔兰盖尔语民谣→中文乐府体译文的音节与情感映射 1. 引言:当古老民谣遇见AI诗意翻译 在语言翻译的世界里,有一种特殊的挑战——将充满文化底蕴的古老民谣,不仅准确翻译,还要保留原有的韵律美和情…...

TinyNAS搜索空间约束:DAMO-YOLO轻量化中延迟与精度的Pareto前沿分析

TinyNAS搜索空间约束:DAMO-YOLO轻量化中延迟与精度的Pareto前沿分析 1. 项目概述 1.1 这是什么系统? 这是一个基于DAMO-YOLO和TinyNAS技术的实时手机检测系统,专门为移动端低算力场景设计。系统通过Web界面提供简单易用的手机检测功能&…...