CSS Module 浅析

 背景

  在多人项目中使用react 构建单页面应用过程中,出现切换不同路由时,页面布局受影响的问题,是由于css混乱而引起的。因为项目本身使用sass进行css的编写,全线转换成react-style的可能性较低,所以打算使用CSS Module进行逐渐升级。

 配置

  在webpack.config.js中进行配置

 1 {
 2   test: /\.scss$/,
 3    include: path.resolve(__dirname, 'src/routes'),
 4    loader: 'style-loader!css-loader?modules&localIdentName=[name]__[local]-[hash:base64:5]!sass-loader?sourceMap=true'
5 },
6 {
7   test: /\.scss$/,
8 exclude: path.resolve(__dirname, 'src/routes'),
9 loader: 'style-loader!css-loader!sass-loader?sourceMap=true'
10 },

因为是逐步升级所以仅在 src/routes目录下开启CSS Modules模式,localIdentName表示的是命名规则

注意:在webpack中对同一种文件的两种loader 如果出现目录覆盖的情况,是会报错的哟!

 

 使用

  来看下demo

  Page1.jsx

1 import React, { Component } from 'react';
2 import Styles from './page1.scss';
3 export default class Page1 extends Component {
4   render() {
5     return (
6       <div className={Styles.component}>aaa</div>
7     );
8   }
9 };

  page1.scss

.component {
  background-color: lightblue;
  font-size: 30px;
}

  

  page2.jsx

import React, { Component } from 'react';
import Styles from './page2.scss';

export default class Page1 extends Component {
  render() {
    return (
      <div className={Styles.component}>bbb</div>
    );
  }
};

  page2.scss

.component {
  background-color: lightsalmon;
  font-size: 60px;
  border: 3px solid black;
}

 

可以看出两个页面的样式完全互相不影响啦!

未完待续。。

 

转载于:https://www.cnblogs.com/miaomiaodamowang/p/6575883.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值