react VS vue 样式问题

样式覆盖:css文件并没有作用域,默认也无法模块化,当有相同的类定义时,会出现样式覆盖。

一、在vue项目中,如果修改第三方组件样式,需要/deep/穿透;而在react中则需要:global:{

}

#main{
    :global{
        
        .antd_layout{

            width:100%
        }
        
    }
}

二、react并未解决样式覆盖的问题,而vue则很好的对css进行了模块化,原理是style上的scoped属性,会让每个元素生成一个不同的属性值。

三、css moudle 或 css in js

react主流的有两种解决方案:

moudle css,是不局限于react项目的,它是由webpack打包支持的,但是react脚手架中已经集成了可以只接使用。

1、将css文件命名为list.moudle.css

2、组件中引入 import list from './list.moudlr.css'

3、className={style.xxx}

css in js,这是一种理念,将css写入到js中,通过js代码对样式进行描述。这样的有点可以使得js可一动态控制样式,并且样式文件也是一个组件,践行base-component理念,不再将css局限在模块化,停留在文件管理层次,而提高大组件层次上来。

成熟的css in js方案:styles-component

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值