• Create-React-App项目中CSS Modules的使用


    目录

    1. 功能描述
    2. 代码实现
    3. 参考文档

    一、功能描述

    二、代码实现

    • 启用SCSS

      • 安装node-sass
      npm install node-sass --save
      
      • 更改css文件后缀及引入
        .css文件后缀改为.scss,在.js.jsx文件中引入。
      import './App.scss';
      
    • 启用CSS Modules

      项目默认支持CSS Modules,需要将模块化的css文件后缀改为.module.css.module.scss,然后在.js.jsx文件中引入。
      示例代码:

      import React, { Component } from 'react';
      import styles from './Button.module.css'; // 引入模块化后的css文件
      import './another-stylesheet.css'; // 引入普通样式文件
      
      class Button extends Component {
        render() {
          return <button className={styles.error}>Error Button</button>;
        }
      }
      
    • 使用多个类名

      在不使用CSS Modules时,我们给元素设置多个类名时通常使用join()ES6模板字符串,这里给出使用CSS Modules时这两种形式的写法:

          // 数组join()形式
          <div className={[styles.menu_bar, styles.active].join(" ")}>Menu</div>
          
          // ES6模板字符串形式
          <div className={`${styles.menu_bar} ${styles.active}`}>Menu</div>
      
    • 动态使用类名

      有时需要根据某一个变量的值来动态决定类名,这里也同样给出join()ES6模板字符串两种形式的写法:

          // 数组join()形式
          <div className={[styles.menu_bar, show?styles.active:''].join(" ")}>Menu</div>
          
          // ES6模板字符串形式
          <div className={`${styles.menu_bar} ${show?styles.active:''}`}>Menu</div>
      
    • 同时使用公共样式

      有时可能同时需要使用公共样式中的类名,这里也给出join()ES6模板字符串两种形式的写法:

          // 数组join()形式
          <div className={['red_txt', styles.menu_bar, show?styles.active:''].join(" ")}>Menu</div>
          
          // ES6模板字符串形式
          <div className={`red_txt ${styles.menu_bar} ${show?styles.active:''}`}>Menu</div>
      

    三、参考文档

  • 相关阅读:
    Go
    Go
    Go -11 Go 框架beego的简单 create run
    文本处理工具之:grep sed awk
    Linux系统布置java项目
    docker 启动mysql 本地连接
    time
    多行查询数据合并成一行进行展示
    settings的使用
    xlsxwriter
  • 原文地址:https://www.cnblogs.com/snaillu/p/14194231.html
Copyright © 2020-2023  润新知