【React】关于样式覆盖问题持续总结

背景

    React现有存在很多相关的三方库,社区很庞大,它们提供了很多封装好的组件供我们使用,提供了很便捷的快速搭建页面的能力。但是提供便利的同时,它也存在一些问题,曾给本菜鸡造成了很多麻烦。其中比较头大的问题就是 样式覆盖 问题。

 

什么是样式覆盖

 

   简单来说,我们所引用的三方组件都是有自己样式的,并且提供了相关API来控制整体样式。以 material-ui 为例:

【React】关于样式覆盖问题持续总结

    其中:Button 组件提供了很多可调整的样式,但是需求就是需要一个非定制化的按钮(比如说圆形的Btn,官方应该是没有的)。所以就需要调整这个Btn的样式。

   然后给Btn上面添加样式后发现没有生效 ,原因就是Btn 以组件内 默认样式的优先级为最高。

 

解决方案

1、先找到控制样式的关键标签:

【React】关于样式覆盖问题持续总结

2、自定义样式文件

1、全局css文件

css文件编译后会对全局生效,无论你css文件存放在那里:

 

2、module样式文件

也就是module下的scs文件,仅仅对本模块下内容有效(!important 会强制优先级最高):

【React】关于样式覆盖问题持续总结

jsx文件中引入

【React】关于样式覆盖问题持续总结

 

之前的总结:https://blog.csdn.net/the_fool_/article/details/103973697