NEWS DETAIL

Vue3 + Vite 项目中 SCSS 使用详解:为什么使用 SCSS,以及 preprocessorOptions 配置原理

发布时间:2026/10/10 14:39:08 · 栏目:资讯中心

尧图网络原创建站知识分享正文
一、什么是 SCSS在前端开发中我们通常使用 CSS 编写页面样式.box{color:red;}但是随着项目越来越复杂CSS 会出现很多问题样式代码重复主题颜色修改困难公共样式无法复用文件越来越难维护因此出现了 CSS 预处理器。常见 CSS 预处理器Sass / SCSSLessStylus其中 SCSS 是目前 Vue 项目中比较常用的一种。二、SCSS 和 CSS 的关系需要注意SCSS 不是新的 CSS它是 CSS 的增强写法。浏览器无法直接识别 SCSS。实际流程SCSS文件 | ↓ Sass编译器 | ↓ CSS文件 | ↓ 浏览器执行例如SCSS$primary-color: #409eff; .box { color: $primary-color; }经过编译.box{color:#409eff;}最终浏览器执行的还是 CSS。三、为什么项目中要使用 SCSS1. 支持变量普通 CSS.header{color:#409eff;}.footer{color:#409eff;}如果主题颜色修改需要修改很多地方。SCSS$primary-color:#409eff; .header { color:$primary-color; } .footer { color:$primary-color; }只需要修改$primary-color:red;所有地方都会同步变化。2. 支持嵌套写法普通 CSS.menu{}.menu .item{}.menu .item span{}SCSS.menu { .item { span { } } }编译结果.menu .item span{}代码结构更加接近 HTML。3. 支持父级引用 例如CSS.button{}.button:hover{}SCSS.button { :hover { } }其中代表当前选择器。编译.button:hover{}4. 支持 mixin 代码复用比如很多地方需要 flex 居中CSS.box1{display:flex;justify-content:center;align-items:center;}.box2{display:flex;justify-content:center;align-items:center;}存在大量重复。SCSSmixin flex-center { display:flex; justify-content:center; align-items:center; } .box1 { include flex-center; } .box2 { include flex-center; }四、SCSS 文件写法Vue 中template div classbox Hello /div /template style langscss .box { color:red; } /style重点stylelangscss告诉 Vue这个 style 使用 SCSS 编译。五、Vite 为什么需要配置 preprocessorOptions在 Vue3 Vite 项目中默认情况下style langscss /style可以使用 SCSS。但是如果项目中有公共变量例如src └── assets └── styles ├── variables.scss ├── mixins.scss └── index.scssvariables.scss$primary-color:#409eff;组件style langscss .title { color:$primary-color; } /style会报错Undefined variable $primary-color原因当前组件不知道$primary-color在哪里定义。六、additionalData 全局注入 SCSSVite 提供css:{preprocessorOptions:{scss:{additionalData:use /assets/styles/index.scss as *;}}}作用自动给每一个 SCSS 文件顶部添加代码。例如你写style langscss .title { color:$primary-color; } /styleVite 编译前自动变成use /assets/styles/index.scss as *; .title { color:$primary-color; }所以所有组件都可以直接使用公共变量。七、preprocessorOptions 结构解析配置css:{preprocessorOptions:{scss:{},less:{}}}为什么有scss less因为Vite 根据文件后缀匹配。例如SCSS文件test.scss使用preprocessorOptions.scssLess文件test.less使用preprocessorOptions.less所以官方说文件扩展名用作选项的键。意思就是文件后缀 配置名称。八、是否必须使用 preprocessorOptions答案不是。情况1不用 SCSS普通 CSSstyle .box{ } /style不需要任何配置。情况2使用 SCSS但是手动引入组件use /assets/styles/index.scss as *; .box{ color:$primary-color; }也可以。情况3大型项目推荐配置企业后台系统例如管理后台数据分析平台BI系统组件库通常styles ├── variables.scss ├── mixins.scss ├── functions.scss └── index.scss然后vite.config.jscss:{preprocessorOptions:{scss:{additionalData:use /assets/styles/index.scss as *;}}}这样维护成本最低。九、SCSS 和 Tailwind CSS 的区别现在很多 Vue3 项目会同时使用Tailwind CSSSCSS两者用途不同。Tailwind负责快速布局divclassflex justify-center text-red-500/div适合页面搭建通用样式SCSS负责复杂样式逻辑例如主题变量动画第三方组件覆盖复杂组件样式例如$primary-color:#409eff; .card { border-color:$primary-color; }十、总结功能CSSSCSS普通类选择器支持支持变量不支持支持嵌套不支持支持代码复用困难支持Mixin主题管理困难方便大型项目维护较差更好在 Vue3 Vite 企业项目中推荐src └── assets └── styles ├── variables.scss ├── mixins.scss └── index.scss配合css:{preprocessorOptions:{scss:{additionalData:use /assets/styles/index.scss as *;}}}可以实现全局变量全局函数全局 mixin统一主题管理这也是目前 Vue3 Vite 中比较常见的 SCSS 工程化方案。标签选择器直接影响html中所有通配符影响所有元素class选择器只有html写了class才生效
✦

本文为尧图网络原创建站知识分享。想针对自身行业获取定制化建站方案?欢迎咨询,资深顾问免费为你出思路。

RELATED

相关 资讯推荐

MORE

更多 新鲜资讯

JMeter入门实战:从零构建HTTP接口性能测试脚本与结果分析
2026/10/10 15:43:34

JMeter入门实战:从零构建HTTP接口性能测试脚本与结果分析

1. 项目概述:从零开始,用JMeter搞定HTTP性能测试 刚接触性能测试的新手,或者是从功能测试转过来的朋友,一听到“压测”两个字,心里可能就有点发怵。工具那么多,概念那么杂,从哪儿下手呢&#xf…

Earendel: 一个纯TS写的POSIX兼容的微内核Web操作系统
2026/10/10 15:43:34

Earendel: 一个纯TS写的POSIX兼容的微内核Web操作系统

最近我用TypeScript写了一个运行在浏览器里的Web操作系统 Earendel(目前已知的距离地球最遥远的恒星)。开发它的初衷主要是为了Linux和操作系统课程的教学。市面上绝大多数Web OS项目,要么只是做了一个长得像Windows/macOS的网页UI拼盘&#…

5分钟掌握Windows防撤回神器:让微信QQ撤回消息无处遁形[特殊字符]
2026/10/10 10:52:13

5分钟掌握Windows防撤回神器:让微信QQ撤回消息无处遁形[特殊字符]

5分钟掌握Windows防撤回神器:让微信QQ撤回消息无处遁形🚀 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁(我已经看到了,撤回也没用了) 项目地址: http…

从零制作同人动画:技术路线、流程与实战避坑指南
2026/10/10 15:19:16

从零制作同人动画:技术路线、流程与实战避坑指南

1. 先搞清楚这个“粉丝动画”到底是什么,以及它能解决什么问题看到“五条悟VS宿傩/咒术回战粉丝动画”这个标题,很多人的第一反应可能是去找一个现成的视频。但如果你是一个想自己动手创作、或者想了解这类作品背后技术流程的创作者,这个标题…

闭源降价80%,开源却在涨价:AI定价的交叉路口
2026/10/10 15:20:24

闭源降价80%,开源却在涨价:AI定价的交叉路口

8月6日,两条价格曲线悄然交汇。 一条向下:OpenAI把GPT-5.6 Luna的输出价格从6美元砍到1.2美元/百万Token,降幅80%。另一条向上:同一天,DeepSeek公告全线涨价,措辞是"涨幅较大",非试探…

产线三防平板选哪个牌子?5个品牌实测告诉你别瞎买
2026/10/10 12:04:54

产线三防平板选哪个牌子?5个品牌实测告诉你别瞎买

产线三防平板选哪个牌子?5个品牌实测告诉你别瞎买经常有工厂朋友拿着网上的"三防平板十大品牌排行榜"来问我:到底选哪个?说实话排行榜看看就行,真正选型得看你产线什么场景。今天挑五个在产线数字化里用得比较多的品牌—…

看完这篇,还想了解更多?

预约尧图网络顾问一对一沟通,针对你的行业与现状给出建站建议,全程免费。

免费咨询