react项目中CSS继承(CSS样式复用)

.green-flag {
    width: 2rem;
    height: 2rem;
    padding: 0.375rem;
    border-radius: 0.25rem;
    user-select: none;
    user-drag: none;
    cursor: pointer;
}

.green-flag:hover {      //冒号:的含义是此样式的不同状态下
    background-color: $motion-light-transparent;
}

.green-flag.is-active {  //我的理解为CSS样式的继承,样式抽取
    background-color: $motion-transparent;
}
const GreenFlagComponent = function (props) {
    const {
        active,
        className,
        onClick,
        title,
        ...componentProps
    } = props;
    return (
        <img
            className={classNames(
                className,
                styles.greenFlag,
                {
                    [styles.isActive]: active   //如果active=true,就采用子样式。否则使用父类样式
                }
            )}
            draggable={false}
            src={greenFlagIcon}
            title={title}
            onClick={onClick}
            {...componentProps}
        />
    );
};

原文地址:https://www.cnblogs.com/Oldz/p/12552727.html

时间: 2024-11-09 13:40:21

react项目中CSS继承(CSS样式复用)的相关文章

React项目中使用Mobx状态管理(二)

并上一节使用的是普通的数据状态管理,不过官方推荐使用装饰器模式,而在默认的react项目中是不支持装饰器的,需要手动启用. 官方参考 一.添加配置 官方提供了四种方法, 方法一.使用TypeScript,顾名思义该方法是项目使用typescript时的配置 方法二.使用babel-preset-mobx, 安装并添加到.babelrc配置中,该方法需要升级一些依赖, babel-core -> @/babel-core 7.x babel-loader -> @/babel-loader 8.

深入浅出TypeScript(5)- 在React项目中使用TypeScript

前言 在第二小节中,我们讨论了利用TypeScript创建Web项目的实现,在本下节,我们讨论一下如何结合React创建一个具备TypeScript类型的应用项目. 准备 Webpack配置在第二小节项目的基础上做了一些修改, 添加React相关依赖:react.react-dom.@types/react 和@types/react-dom 修改Webpack配置文件 修改webpack.base.config.js,其余文件和第二小节保持一致,修改如下: const HtmlWebpackP

Node.js压缩web项目中的js,css和图片

安装node.js 这个非常简单,下载下来,配置下环境变量就可以了,使用node -v查看是否安装成功 安装压缩需要的模块分别是uglify-js,clean-css,node-smushit 命令是npm install xxx ,我之前安装都是不适于全局安装的,这个应该无所谓 编写压缩的js(应该很好看懂) /*******压缩JS******/ var fs = require('fs'); var uglify = require("../../nodejs/node_modules/u

react项目中遇到的BUG

前情提要:最近在学习react,然后就将项目中遇到的bug总结下来,作为借鉴! 项目结构: demo |app |app.js |main.js |center.js |toutiao.js |quanzi.js |shipin.js |dinggou.js |style.css |build |index.html |.babelrc |package.json |node_modules |webpack.config.js html文件: <!DOCTYPE html> <html

react项目中引用amap(高德地图)坑

最近在写一个react项目,用到了需要定位的需求,于是乎自己决定用高德地图(AMap),但是react官方文档的案列很少,大多都是原生JS的方法. 在调用amap的 Geocoder Api 时,一直不能从AMap对象下找到Geocoder 的方法, 后来花了几个小时的时间找问题在哪 结果在index中引入链接时,需要在链接上配置plugin=AMap.Geocoder, 才能够在AMap调用Geocoder Api. 下面是例子: <script type="text/javascrip

Django项目中引用js,css文件的可行方法

首先,在manager.py同层级下创建static文件夹, 里面放上css , js, image等文件或者文件夹 第二,在项目同名的app中settings文件末尾添加以下内容: STATIC_URL = '/static/' HERE = os.path.dirname(os.path.abspath(__file__)) HERE = os.path.join(HERE, '../') STATICFILES_DIRS = ( # Put strings here, like "/hom

在项目中遇到关于 CSS Overflow Hidden在iPhone &amp; Safari不起作用

调试了半天 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0"> <title></title> <style> ht

Spring+Mybatis项目中通过继承AbstractRoutingDataSource实现数据库热切换

在做ERP项目的时候有个需求是能够管理和切换账套,一个账套就是一个数据库,那么就需要实现数据库的热切换.网上找了很多资料再结合项目的具体需求实现了一个还算比较好用的数据库热切换. 原理是首先继承AbstractRoutingDataSource并实现determineCurrentLookupKey方法,方法的内容为 protected Object determineCurrentLookupKey() {     return DataSourceContextHolder.getDataS

在React项目中添加ESLint

1. 安装eslint npm install eslint --save-dev // 或者 yarn add eslint --dev 2. 初始化配置文件 npx eslint --init //进入问题配置页面 完成后,添加react-hook的eslint插件 npm install eslint-plugin-react-hooks --save-dev // 或者 yarn add eslint-plugin-react-hooks --dev 并且在配置文件中添加配置项: //