Vue全局使用less样式,组件使用全局样式文件中定义的变量操作


Posted in Javascript onOctober 21, 2020

当你想要在vue项目的一个组件中使用全局样式文件中定义好的变量,此时只在main.js中import是不行的。

目录结构如下:

Vue全局使用less样式,组件使用全局样式文件中定义的变量操作

即在MHeader.vue中想要使用src下的less下的variables.less文件中定义好的变量。

Vue全局使用less样式,组件使用全局样式文件中定义的变量操作

Vue全局使用less样式,组件使用全局样式文件中定义的变量操作

此时,只用import在main.js中导入variables.less文件是会报错的。

解决办法:

1、安装less和less-loader

npm i less less-loader -D

2、要想全局使用还需使用一个插件( sass-resources-loader ),没有写错,就是sass

npm i sass-resources-loader -D

3、安装完sass-resources-loader后,配置webpack,找到build/utils.js文件,在cssLoaders函数中添加使用全局less函数

Vue全局使用less样式,组件使用全局样式文件中定义的变量操作

// 增加全局使用less函数
 function lessResourceLoader() {
 var loaders = [
  cssLoader,
  'less-loader',
  {
  loader: 'sass-resources-loader',
  options: {
   resources: [
   path.resolve(__dirname, '../src/assets/less/variables.less'), //定义全局变量的文件路径
   ]
  }
  }
 ];
 if (options.extract) {
  return ExtractTextPlugin.extract({
  use: loaders,
  fallback: 'vue-style-loader'
  })
 } else {
  return ['vue-style-loader'].concat(loaders)
 }
 }

并在return中用你定义的lessResourceLoader函数替换less: generateLoaders('less')这个函数。

return {
 css: generateLoaders(),
 postcss: generateLoaders(),
 less: lessResourceLoader('less'),
 sass: generateLoaders('sass', { indentedSyntax: true }),
 scss: generateLoaders('sass'),
 stylus: generateLoaders('stylus'),
 styl: generateLoaders('stylus')
 }

Vue全局使用less样式,组件使用全局样式文件中定义的变量操作

4、完成之后就可以重新运行项目了

npm run dev

补充知识:Vue less使用scope时渗入修改子组件样式

我就废话不多说了,大家还是直接看代码吧~

@aaa: ~'>>>';
.wrap {
  @{aaa} .component1 {
    width: 120px;
  }
/deep/ .component2 {
    width: 130px;

}
}

以上这篇Vue全局使用less样式,组件使用全局样式文件中定义的变量操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js删除所有的cookie的代码
Nov 25 Javascript
javascript修改图片src的方法
Jan 27 Javascript
JS替换字符串中空格方法
Apr 17 Javascript
深入理解ECMAScript的几个关键语句
Jun 01 Javascript
jQuery实现磁力图片跟随效果完整示例
Sep 16 Javascript
微信js-sdk上传与下载图片接口用法示例
Oct 12 Javascript
Bootstrap 手风琴菜单的实现代码
Jan 20 Javascript
jQuery实现可编辑表格并生成json结果(实例代码)
Jul 19 jQuery
JavaScript实现简单评论功能
Aug 17 Javascript
微信小程序实现即时通信聊天功能的实例代码
Aug 17 Javascript
策略模式实现 Vue 动态表单验证的方法
Sep 16 Javascript
vue使用高德地图点击下钻上浮效果的实现思路
Oct 12 Javascript
js 图片懒加载的实现
Oct 21 #Javascript
uniapp实现可以左右滑动导航栏
Oct 21 #Javascript
解决vue-loader加载不上的问题
Oct 21 #Javascript
Vue实现返回顶部按钮实例代码
Oct 21 #Javascript
vue将文件/图片批量打包下载zip的教程
Oct 21 #Javascript
uniapp实现可滑动选项卡
Oct 21 #Javascript
element中table高度自适应的实现
Oct 21 #Javascript
You might like
深入分析PHP引用(&)
2014/09/04 PHP
PHP中Array相关函数简介
2016/07/03 PHP
PHP基于关联数组20行代码搞定约瑟夫问题示例
2017/11/07 PHP
jQuery.autocomplete 支持中文输入(firefox)修正方法
2011/03/10 Javascript
jquery中dom操作和事件的实例学习 仿yahoo邮箱登录框的提示效果
2011/11/30 Javascript
浅谈Javascript 执行顺序
2013/12/18 Javascript
js 显示base64编码的二进制流网页图片
2014/04/04 Javascript
使用jQuery获得内容以及内容的属性
2015/02/26 Javascript
轻量级jQuery插件slideBox实现带底栏轮播(焦点图)代码
2016/03/28 Javascript
浅析js绑定事件的常用方法
2016/05/15 Javascript
json对象转为字符串,当做参数传递时加密解密的实现方法
2016/06/29 Javascript
浅谈JS中的bind方法与函数柯里化
2016/08/10 Javascript
jQuery实现复制到粘贴板功能
2017/02/11 Javascript
javascript实现文字无缝滚动效果
2017/08/26 Javascript
javascript  删除select中的所有option的实例
2017/09/17 Javascript
JS构造一个html文本内容成文件流形式发送到后台
2018/07/31 Javascript
vuejs router history 配置到iis的方法
2018/09/20 Javascript
OpenLayers3实现地图显示功能
2020/09/25 Javascript
低版本中Python除法运算小技巧
2015/04/05 Python
Python随机数用法实例详解【基于random模块】
2017/04/18 Python
基于tensorflow加载部分层的方法
2018/07/26 Python
Python基于Opencv来快速实现人脸识别过程详解(完整版)
2019/07/11 Python
Python生成器next方法和send方法区别详解
2020/05/30 Python
解决pytorch多GPU训练保存的模型,在单GPU环境下加载出错问题
2020/06/23 Python
Python 合并拼接字符串的方法
2020/07/28 Python
python 模块导入问题汇总
2021/02/01 Python
CSS3教程:边框属性border的极致应用
2009/04/02 HTML / CSS
纯CSS3实现滚动的齿轮动画效果
2014/06/05 HTML / CSS
香港演唱会订票网站:StubHub香港
2019/10/10 全球购物
自荐书封面下载
2013/11/29 职场文书
2014法制宣传日活动总结
2014/07/09 职场文书
港澳通行证委托书怎么写
2014/08/02 职场文书
2014年法务工作总结
2014/12/11 职场文书
安全教育主题班会总结
2015/08/14 职场文书
《自己去吧》教学反思
2016/02/16 职场文书
致创业您:正能量激励人心句子(48条)
2019/08/15 职场文书