react项目在webpack中配置CSS模块化

31 篇文章 0 订阅
9 篇文章 0 订阅
react-----css模块化
  • 之前在学习Vue的时候,为了让css样式只在当前组件中生效,可以在使用scoped指令限制我们的样式只在当前组件生效,当我们给每一个组价添加scoped时,就相当于实现了CSS的模块化,在需要修改第三方组件的样式的时候,根据常用的css预加载器的不同,分别提供了** ’ >>>’ ** 和 ‘/deep/’ 实现修改第三方组件的样式,写法如下
// 使用stylus时
<style scoped lang="stylus">
	外层样式  >>> 第三方样式 
   	 	{
   	 	  样式
   	 	}
</style>
// 使用sass时
 <style scoped lang="sass">
	外层样式  /deep/ 第三方样式 
   	 	{
   	 		样式
   	   }
</style>
// 使用less时
 <style scoped lang="less">
	外层样式  >>> 第三方样式 
		{
   	 		样式
   	  }
</style>
  • 然后在react中是不存在指令的概念的,在我们引入样式的时候,如果组件中存在一样的类名(而且想类名也很头疼),那么会存在样式覆盖,导致我们的样式出现混乱,所以为了避免这种现象我们可以在webpack中配置CSS模块化,我们在webpack.config.js文件中的css-loader中添加如下配置即可
// 这里就可以实现CSS模块化了,当前组件的样式只会在当前组件生效
module: {
    rules: [
      { test: /\.css$/, use: ['style-loader', 'css-loader?modules&localIdentName=[name]_[local]-[hash:6]'] }, 
    ]
  }
 

若是想其中的某一个或者几个类的样式全局引用,只需要将用:goble()将类名括起来就可以了,例如

:goble(.head-text){
	color: red;  // 这样全局的.head-text的字体颜色都是红色的
	}
	.head-text{
	color: green;  // 这样当前组件的.head-text的字体是绿色的
	}
	// 如果以上的代码都在css文件中,那么只有当前组件的文字是绿色的,其他有.head-text的组件文字的是红色的

写好样式之后我们通过import导进来就可以了

import MyStyles from '../css/myStyle.css'
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值