vue 之 css module

前言


最近学习webpack看到了一个新鲜的东西,之前都是通过scoped来区别类名,秉着任何时候学习都不晚的心情,作为小白的我也想揭揭css module的神秘面纱。

css module目的为所有类名重新生成类名,有效避开了css权重和类名重复的问题。相比于scoped为类名添加一个hash标识效果优秀不少,但相对的书写会繁琐一些。

项目基于cli3搭建,讲真的,我也是被cli3鬼迷心窍了。相比2的繁琐,3提供界面管理对我这样子的小白确实直观很多,而且需要配置vue.config.js也十分合适呢。

开工


动手之前先配置项目,网上很多文章说需要下载css-loader插件,Vue中的vue-loader已经集成了 CSS Modules,因此删掉也能正常运行

vue.config.js中添加如下配置

css: {
    loaderOptions: {
      css: {
        localIdentName: '[name]__[local]-[hash:base64:5]',
        camelCase: true
      }
    }
  }
  • localIdentName是格式化类名:name是当前文件名称,local是当前定义的类名名,hash是hash生成的字符串,长度为5
  • camelCase:在类名有中横线时,'only'在标签上绑定类名时只支持大驼峰,true:支持大驼峰也支持中括号命名

特别注意:css module所有类名都要:class进行绑定

<div>
  <p class="less-color">这是通过less设置的:global字体颜色为粉色</p>
  <p :class="$style.lessFontSize">这是通过less设置的:local字体大小为40px</p>
  <p :class="$style.red">This should be red</p>
  <h4 :class="$style.headerTit">类别推荐</h4>
  <h4 :class="$style['header-tit']">类别推荐</h4>
</div>

样式表需要添加module,可以通过console.log(this.$style);输出当前所有的:local { }类名。默认是:local { },即:local前缀是可以省略的,若要全局类名则资额在:global { }

<style module lang="less">
:global {
  .less-color {
    color: pink;
  }
}
:local {
  .less-font-size {
    font-size: 40px;
  }
  .red {
    color: red;
  }
  .header-tit {
    color: blue;
  }
}
</style>


效果


和配置一样:当前文件名称,local是当前定义的类名名,hash是hash生成的字符串,长度为5;true:支持大驼峰也支持中括号命名

<div>
  <p class="less-color">这是通过less设置的:global字体颜色为粉色</p>
  <p class="index__less-font-size-2QPBO">这是通过less设置的:local字体大小为40px</p>
  <p class="index__red-3YoIm">This should be red</p>
  <h4 class="index__header-tit-3pTz4">类别推荐</h4>
  <h4 class="index__header-tit-3pTz4">类别推荐</h4>
</div>


后记


过程还是蛮曲折的,小白就是道阻且长啊,不过我相信积少成多,会有蜕变的一天的。

附: vue css module 官方文档

malk 2018.12.3

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1 Webpack 1.1 概念简介 1.1.1 WebPack是什么 1、一个打包工具 2、一个模块加载工具 3...
    Kevin_Junbaozi阅读 6,726评论 0 16
  • 今天上道德与法治,老师穿的很漂亮。我在听老师给我们讲课。老师说要画一些喜欢的运动。我画的是我在操场上踢足球,旁边还...
    平凡一生123阅读 354评论 0 0
  • 本周阅读了张萌的《人生效率手册》,主要讲了时间管理,高效学习,如何卓有成效地过好每一天。她说:人生就是一本效率手册...
    想想妈叙生活阅读 410评论 2 3
  • 小明放学回家的路上,他总是一边走路一边看书,吃饭的时候也边看书边吃,睡觉的时候在床上看书,时间长了他的眼睛看东西很...
    jnay阅读 98评论 0 0