CSS Module 是一种解决 CSS 命名冲突的方案。使用 CSS Module,可以将每个组件的 CSS 样式都封装在一个独立的作用域中,防止样式冲突。
在 React 项目中使用 CSS Module,需要在 CSS 文件名中添加 .module
,例如 style.module.css
。然后在组件中引入 CSS 文件时,使用 import styles from './style.module.css'
的语法引入 CSS 样式。
在 JSX 中使用 CSS 样式时,需要使用 className={styles.classname}
的语法,其中 styles.classname
表示该组件 CSS 样式中的 classname。
除了以上基本用法,还可以使用 :global
关键词来定义全局样式,使用 composes
关键词来继承其他组件的样式。例如:
/* 定义全局样式 */
:global {
.global-classname {
color: red;
}
}
/* 继承其他组件的样式 */
.other-classname {
composes: classname from 'path/to/other/component.module.css';
font-size: 16px;
}
总之,CSS Module 是一种非常方便的解决 CSS 命名冲突的方案,可以有效地提高项目的可维护性和可扩展性。