cssModules可以用于加密和避免重复使用,也就是说可以在当前vue文件中写的样式会生成独一无二的名字,在其他vue文件中是无法调用的,

一、可以直接配cssModules

第一步,配置vue-loader.js文件

const docsLoader = require.resolve('./doc-loader')
module.exports = (isDev) =>{
return {
...
cssModules:{
//在当前vue文件中写的样式会生成独一无二的名字,在其他vue文件中是无法调用的
localIdentName:'[path]-[name]-[hash:base64:5]',
//把css类名为‘-’连接的,转化为驼峰的
//详情见header.vue 如果要vue中css样式用camelCase方法需要在style标签中配置module
camelCase:true
}
... }
}   

第二步 在webpack.config.base.js中配置如下

!!也不一定是webpack.config.base.js  只要是执行用vue-loader 打包vue文件的地址多配置一条即可。

 const createvueLoaderOptions = require('./vue-loader.config')
...
rules: [
{
test: /\.vue$/,
loader: 'vue-loader',
options:createvueLoaderOptions(isDev)
},
...

第三步  在vue文件中使用module

<template>
<header :class="$style.mainHeader">
<!-- <header :class="$style.mainHeader"> == <header class="main-header">
用了module页面class就生成独一无二的 class="client-layout--header-2AE8s_0"
-->
<h1>JTodo</h1>
</header>
</template>
<!--使用module-->
<style lang="stylus" module>
.main-header{
text-align center
h1{
font-size 100px
color: rgba(175, 47, 47, 0.4)
font-weight 100
margin 20px
}
}
</style>

浏览器中网页生成的class如图

二、如果想使用css-loader的时候也如上可以自定义name如何做呢?

第一步  配置一个option定义一个规则

...
module:{
rules:[
  {
test: /\.styl/,
use: [
'vue-style-loader',
    {
loader:'css-loader',
options:{
module:true,
    //可以开启一个localIdentName
localIdentName:isDev ? '[path]-[name]-[hash:base64:5]':'[hash:base64:5]',
}
},
]
}
]
},
...

 第二步如何使用呢?如下

import '../assets/styles/footer.styl'

export default {
data() {
return {
author: 'Jokcy'
}
},
render() {
return (
<div id="footer">
<span>Written by {this.author}</span>
</div>
)
}
}

  上面的代码 改成如下代码

import classNames from'../assets/styles/footer.styl'

export default {
data() {
return {
author: 'Jokcy'
}
},
render() {
return (
<div id={classNames.footer}>
<span>Written by {this.author}</span>
</div>
)
}
}

  

如图id名字编程了定义好的规则

这样也可以起到一个加密的作用。

有不对的地方请大神多多指教。互相借鉴

vue中cssModules理解可以用于加密和避免重复使用的更多相关文章

  1. vue中v-model详解

    vue中经常使用到<input>和<textarea>这类表单元素,vue对于这些元素的数据绑定和我们以前经常用的jQuery有些区别.vue使用v-model实现这些标签数据 ...

  2. 关于vue中tamplate和DOM节点浅谈

    前言:在开发前段页面使用vue时,我们能经常看到template标签.这里粗略讲下自己对vue中template理解和使用. 1. 先了解vue vue.js是一个轻巧.高性能.壳组件画的MVVM库. ...

  3. 理解Vue中的Render渲染函数

    理解Vue中的Render渲染函数 VUE一般使用template来创建HTML,然后在有的时候,我们需要使用javascript来创建html,这时候我们需要使用render函数.比如如下我想要实现 ...

  4. 【转】简单理解Vue中的nextTick

    前言: Vue中的nextTick涉及到Vue中DOM的异步更新,感觉很有意思,特意了解了一下.其中关于nextTick的源码涉及到不少知识,很多不太理解,暂且根据自己的一些感悟介绍下nextTick ...

  5. 简单理解Vue中的nextTick

    Vue中的nextTick涉及到Vue中DOM的异步更新,感觉很有意思,特意了解了一下.其中关于nextTick的源码涉及到不少知识,很多不太理解,暂且根据自己的一些感悟介绍下nextTick. 一. ...

  6. vue中config/index.js:配置的详细理解

    当我们需要和后台分离部署的时候,必须配置config/index.js: 用vue-cli 自动构建的目录里面  (环境变量及其基本变量的配置) var path = require('path') ...

  7. 对vue中 默认的 config/index.js:配置的详细理解 -【以及webpack配置的理解】-config配置的目的都是为了服务webpack的配置,给不同的编译条件提供配置

    当我们需要和后台分离部署的时候,必须配置config/index.js: 用vue-cli 自动构建的目录里面  (环境变量及其基本变量的配置) var path = require('path') ...

  8. vue系列---理解Vue中的computed,watch,methods的区别及源码实现(六)

    _ 阅读目录 一. 理解Vue中的computed用法 二:computed 和 methods的区别? 三:Vue中的watch的用法 四:computed的基本原理及源码实现 回到顶部 一. 理解 ...

  9. vue中webpack的配置理解

    当我们需要和后台分离部署的时候,必须配置config/index.js: 用vue-cli 自动构建的目录里面  (环境变量及其基本变量的配置) var path = require('path') ...

随机推荐

  1. 跨域问题时的Filter无效

    我页面用Web Uploader进行图片上传,后台使用一个过滤器解决跨域的options问题,然后我给入口类加上了这个过滤器注解配置,但是无效页面代码: <body> <div id ...

  2. hdu-1695 GCD---容斥定理

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1695 题目大意: 求解区间[1, n]和[1, m]中有多少对不同的x和y使得gcd(x, y) = ...

  3. Yii 多表关联relations

    1,首先多表关联是在models/xx.php的relations里配置的.而且是互配,但有区别.格式:'VarName'=>array('RelationType', 'ClassName', ...

  4. Linux CentOS6系统安装最新版本Node.js环境及相关文件配置

    Node.js,当前应用非常广泛的Javascript运行环境,采用C++编写的,目前应用较多的用于WEB应用中,执行效率还是非常高的,虽然老左不从业程序的开发,但是有些时候在玩VPS的时候还是会遇到 ...

  5. HDU 2018 Multi-University Training Contest 3 Problem A. Ascending Rating 【单调队列优化】

    任意门:http://acm.hdu.edu.cn/showproblem.php?pid=6319 Problem A. Ascending Rating Time Limit: 10000/500 ...

  6. 让Git不再难学

    写在前面 在团队做过软件开发的,版本控制必是不可或缺的一项.目前,版本控制主要分为集中式版本控制系统和分布式版本控制系统 ,即大家熟知的SVN和Git.Git是当下最流行的分布式版本控制系统,故,今天 ...

  7. Charles Proxy v4.1.3 Mac、Win64、Win32破解版

    http://charles.iiilab.com/ 1. 下载Charles Proxy 4.1.3版本,百度云盘下载 或 去官网下载 2. 安装后先打开Charles一次(Windows版可以忽略 ...

  8. Visual Studio Installer打包安装项目VS2015

    使用VS2015的Visual Studio Installer打包安装项目,虽然整体操作很简单,但还是有几个特殊的点需要记一下,故写下此博客方便以后查阅 第一步,创建安装项目 如下: 里面最左侧的框 ...

  9. java 编写小工具 尝试 学习(七)

    1.在java 编写小工具 尝试 学习(六)里学会了,控件 的随意摆放, 以及大小(x,y,width,height),又根据前面学习的按钮 被点击 的事件监控 的方法 ,点击 按钮 在显示区域显示“ ...

  10. 一点一点看JDK源码(五)java.util.ArrayList 后篇之Spliterator多线程遍历

    一点一点看JDK源码(五)java.util.ArrayList 后篇之Spliterator多线程遍历 liuyuhang原创,未经允许禁止转载 本文举例使用的是JDK8的API 目录:一点一点看J ...