آموزش CSS Modules در React؛ ساخت فایل module.css، import استایل، className با styles و مزایای scope محلی برای پروژههای بزرگ بدون برخورد نام کلاس.
در پروژههای بزرگ، دو کامپوننت با کلاس .container ممکن است استایل یکدیگر را خراب کنند. CSS Modules کلاسها را محلی (scoped) میکند: هر فایل CSS فقط در همان کامپوننت importشده اعمال میشود و نام کلاس در build یکتا میشود.
فایلی با پسوند .module.css که React/Vite آن را به آبجکت JavaScript تبدیل میکند. بهجای رشته، از property آن آبجکت در className استفاده میکنید.
MyComponent.module.css
.container {
padding: 20px;
background: #f5f5f5;
}
.title {
font-size: 1.5rem;
color: #333;
}MyComponent.jsx
import styles from "./MyComponent.module.css";
function MyComponent() {
return (
<div className={styles.container}>
<h1 className={styles.title}>محتوا</h1>
</div>
);
}| قانون | توضیح |
|---|---|
| پسوند فایل | حتماً .module.css |
| import | import styles from "./Name.module.css" |
| className | styles.className نه رشته "container" |
<div className={`${styles.card} ${styles.highlight}`}>...</div>یا با کتابخانه clsx / classnames برای شرط.
CSS Modules تعادل خوبی بین CSS کلاسیک و encapsulation است. فایل .module.css بسازید، import کنید و با styles.xxx به کلاسها وصل شوید. برای پروژههایی که میخواهند CSS جدا از JS بماند ولی تداخل کلاس نداشته باشند، انتخاب محکمی است.