一款 CSS 预处理语言,SCSS 是 Sass 3 引入新的语法,其语法完全兼容 CSS3,并且继承了 Sass 的强大功能。
# 1. 安装依赖
npm i -D sass |
# 2. 创建 variables.scss
变量文件
新建 src/styles/index.scss
添加变量 $bg-color
定义,注意规范变量以 $
开头
// src/styles/variables.scss | |
$bg-color:#242424; |
# 3. Vite
配置导入 SCSS
全局变量文件
配置 vite.config.ts
// vite.config.ts | |
css: { | |
// CSS 预处理器 | |
preprocessorOptions: { | |
// define global scss variable | |
scss: { | |
javascriptEnabled: true, | |
additionalData: `@use "@/styles/variables.scss" as *;` | |
} | |
} | |
} |
# 4. style
标签使用 SCSS
全局变量
<!-- src/components/HelloWorld.vue --> | |
<template> | |
<div class="box" /> | |
</template> | |
<style lang="scss" scoped> | |
.box { | |
width: 100px; | |
height: 100px; | |
background-color: $bg-color; | |
} | |
</style> |
# 5. TypeScript
生效
上面导入的 SCSS
全局变量在 TypeScript
不生效的,需要创建一个以 .module.scss
结尾的文件
// src/styles/variables.module.scss | |
// 导出 variables.scss 文件的变量 | |
:export{ | |
bgColor:$bg-color | |
} |
TypeScript
使用 SCSS
全局变量
<!-- src/components/HelloWorld.vue --> | |
<script setup lang="ts"> | |
import variables from "@/styles/variables.module.scss"; | |
console.log(variables.bgColor) | |
</script> | |
<template> | |
<div style="width:100px;height:100px" :style="{ 'background-color': variables.bgColor }" /> | |
</template> |