CSS Module样式隔离
CSS Module是一种CSS的新模式,它可以帮助我们避免样式污染问题,也就是全局样式污染。它通过提供一种方式,将样式和选择器封装在一个局部作用域中,只在当前模块中有效,不会影响到其他部分。
在React中,我们可以使用create-react-app
脚手架创建的项目默认支持CSS Module。在该项目中,只需要将CSS文件后缀名改为.module.css
,然后在JSX文件中引入这个模块化的CSS文件即可。
例如,我们有一个App.js
文件和一个App.module.css
文件。
App.module.css
文件:
.text {
color: blue;
}
App.js
文件:
import React from 'react';
import styles from './App.module.css';
function App() {
return <div className={styles.text}>Hello, CSS Module!</div>;
}
export default App;
在这个例子中,styles
对象是一个由Webpack生成的对象,它的键是本地的CSS类名,值是一个唯一的,不可预测的,全局唯一的类名。因此,.text
类在App.js
文件中是以styles.text
的方式引用的,这样可以避免.text
类在全局范围内的样式污染问题。
评论已关闭