react module.scss 避免全局辩论类似vue中scoped

打印 上一主题 下一主题

主题 880|帖子 880|积分 2642

创建 index.module.scss 文件

  1. src/
  2.   components/
  3.     MyComponent/
  4.       index.module.scss
  5.       index.tsx
复制代码
2. 编写 index.module.scss 内容

  1. // src/components/MyComponent/index.module.scss
  2. .container {
  3.   padding: 20px;
  4.   background-color: #f0f0f0;
  5.   .title {
  6.     font-size: 24px;
  7.     color: #333;
  8.   }
  9.   .button {
  10.     background-color: #007bff;
  11.     color: white;
  12.     padding: 10px 20px;
  13.     border: none;
  14.     border-radius: 5px;
  15.     &:hover {
  16.       background-color: #0056b3;
  17.     }
  18.   }
  19. }
复制代码
在 React 组件中使用 index.module.scss

  1. import React from 'react';
  2. import styles from './index.module.scss'; // 引入样式文件
  3. const MyComponent: React.FC = () => {
  4.   return (
  5.     <div className={styles.container}>
  6.       <h1 className={styles.title}>Hello, World!</h1>
  7.       <button className={styles.button}>Click Me</button>
  8.     </div>
  9.   );
  10. };
  11. export default MyComponent;
复制代码
CSS 模块化的优势



  • 局部作用域:样式只作用于当前组件,不会影响其他组件。
  • 避免命名辩论:CSS 模块会主动天生唯一的类名,避免全局样式辩论。
  • 支持 SCSS 语法:可以使用嵌套、变量、混合等 SCSS 特性。
如果必要根据条件动态添加类名,可以使用模板字符串或 classnames 库

  1. import React from 'react';
  2. import styles from './index.module.scss';
  3. import classNames from 'classnames'; // 引入 classnames 库
  4. const MyComponent: React.FC<{ isActive: boolean }> = ({ isActive }) => {
  5.   return (
  6.     <div
  7.       className={classNames(styles.container, {
  8.         [styles.active]: isActive, // 根据条件添加类名
  9.       })}
  10.     >
  11.       <h1 className={styles.title}>Hello, World!</h1>
  12.       <button className={styles.button}>Click Me</button>
  13.     </div>
  14.   );
  15. };
  16. export default MyComponent;
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

南七星之家

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表