如何设置 sass 全局变量,js如何使用 sass 变量
关键词:sass全局变量 js引用sass变量
1 如何在样式中使用 scss 的声明的全局变量
假设我们有一个全局的 scss 变量文件/styles/_vars.sass,如下:
$red: red;
$blue: blue;
如果想要在组件的样式中使用这些变量,我们需要引入这个文件,像这样:
<style lang="scss" scoped>
@import '/styles/_var.scss';
.login {
background-color: $red;
}
</style>
这种方式虽然解决了问题,但带来了很多问题:代码冗余、不好维护...
我们迫切需要一种全新的更优雅的方法——sass-resources-loader
该加载器将 sass 资源自动导入每个所需的 sass 模块。 因此,您可以在所有 sass 样式中使用共享变量和mixin,而无需在每个文件中手动导入它们。
注意,此loader不限于sass,并适用于 less,post-css等。
Supports Webpack 4.
官方github上对于不同的配置都给出详细的说明,请参考sass-resources-loader
2 如何在 js 中使用 sass 的全局变量
通过webpack和css module,我们可以轻松的在 js 中使用 sass 文件中定义的全局变量。
第一步,安装需要的依赖:
npm install sass-loader node-sass webpack --save-dev
第二步使用sass-loader配置webpack,这样我们就能在 js 中使用 sass 变量了。
// webpack.config.js
module.exports = {
module: {
rules: [
{
test: /\.css$/,
use: ['style-loader', 'css-loader', 'sass-loader']
}
]
}
}
现在,我们在 sass 文件中定义变量并将其导出为 js,CSS Module 有一个:export关键字,它在功能上等同于 ES6 的关键字export,即导出一个 js 对象。
// /styles/global.scss
$exportedValue: #ccc;
:export {
exportedKey: $exportedValue;
/* ... */
}
现在,我们可以在 js 中使用这个变量啦。
// js/test.js
import styles from '/styles/global.scss'
console.log(styles)
参考
css-modules
sass-resources-loader
how-to-share-variables-between-js-and-sass
如何设置 sass 全局变量,js如何使用 sass 变量的更多相关文章
- Vue中使用Sass全局变量
前言 假设我们原有项目的主题色是蓝色的,这时有个需求,需要把主题色改成橙色的.一般情况下,我们可能会在main.js中引入公共样式文件,但你会发现,在组件中使用公共样式文件中定义的某个参数时,会报一个 ...
- gulpfile.js(编译sass,压缩图片,自动刷新浏览器)
var gulp = require('gulp'), sass = require('gulp-sass'), watch = require('gulp-watch'), ...
- sass学习(2)——关于变量
定义一个sass变量 可以说,变量是一个编程语言的基础.所以对于sass来说,变量肯定是浓墨重彩的其中一笔,当然函数也是.那我们如何声明定义一个sass的变量呢? 变量的符号$ 变量名称 变量的值 那 ...
- Sass学习之路:Sass、Compass安装与命令行
导言 CSS不是一门真正意义上的编程语言,很多编程语言理所当然的特性(比如变量),都不被支持.同时再开发模块化的web项目的时候,也要避免相互干扰.为了弥补CSS的这些不足,就产生了CSS预处理器,S ...
- 分享一个快速设置背景的js 自动获取背景图的长宽
我来分享一个快速设置背景的js (需要jq支持!) 快速切图铺页面用---就是不需要手动输入背景图的长宽 自动获取背景图的长宽 : <div class="wrap"> ...
- Sass学习之路(3)——Sass编译
Sass的编译也是在我们使用Sass的时候必须要经过的一个步骤,因为".sass"和".scss"文件并不能直接使用<link>标签引用,最终其实还 ...
- Sass学习之路(1)——Sass简介
Sass是CSS的一种预处理器语言,类似的语言还有Less,Stylus等. 那么什么是CSS预处理器? CSS 预处理器定义了一种新的语言,其基本思想是,用一种专门的编程语言,为 CSS 增加了一些 ...
- FE: Sass and Bootstrap 3 with Sass
Sass简介 Sass是CSS的预处理语言:提供了变量定义.函数定义.函数调用.类继承.嵌套(CSS层级关系)及代码引入功能. Sass安装指南 MAC OS X 10.10.3 终端 -> ...
- 使用javax.script包实现Java设置JS脚本中的变量
下面例子中,我们通过javax.script包ScriptEngine.put()方法设置JS脚本中的变量,JS把所有在线用户输出. package ajava.code.javase; import ...
随机推荐
- CDH hue下定时执行hive脚步
今天在看oozie时发现能在hue中执行hive 脚本,主要是hue 和 oozie结合使用,下面介绍下怎么使用的,挺恶心的,哈哈(在这里就不哔哔了) 提交oozie定时作业 1.进入hue界 ...
- oracle用户间表数据复制迁移
如system用户要将scott中的emp表倒入其中,按如下方法: 1.登录scott用户 2.给system用户赋予查询emp标的权限: grant select on emp to system; ...
- 十五、Facade 窗口设计模式
需求:让复杂的事务看起来简单 原理: 代码清单: DataBase: public class DataBase { private DataBase(){} public static Proper ...
- 创建第一次C语言程序
在这里我以VS2015为例,做演示.为什么要去演示怎样创建项目尼,因为我写第一个程序时,不知道该怎样用VS创建我的第一个应用程序. 第一步:打开VS环境如下 第二步:在开始出点击“新建项目”或在右上角 ...
- 508. Most Frequent Subtree Sum 最频繁的子树和
[抄题]: Given the root of a tree, you are asked to find the most frequent subtree sum. The subtree sum ...
- swift - UIButton按钮有图片是点击高亮 有灰色动画
取消 高亮的 动画 btn.adjustsImageWhenHighlighted = false btn.layer.removeAllAnimations()
- Head First Servlets & JSP 学习笔记 第七章 —— 作为JSP
<%@ …… %> 这是指令 <%@ page ……import="java.util.Date" %> 这是page指令,import是page指令的一个 ...
- centos查看系统版本
显示系统版本 cat /etc/redhat-release cat /proc/version uname -a 查看位数 file /bin/ls
- findViewById(R.id.btn_first) 给写成 R.layout.
窗体内放了个按钮, findViewById(R.id.btn_first) 给写成 R.layout. 在java 里边引用结果就是找不到那个id 找了半天找不到原因, 奔着网上常见R找不到的问题, ...
- sql中with as测试实例
一.使用场景 1.多处使用才有必要2.一方面减少代码数量便于理解维护3.一方面跟代码一样一次计算到处用 二.实例(本处示例仅为测试,实际用join比较好) 1.不使用with as 2.使用with ...