vite中使用scss技巧

一、样式混合

1.普通用法

css 复制代码
@mixin flex() {
    display: flex;
    justify-content: space-around;
    align-items: center;
}

//使用方法
.legend_box_item {
	width: 50%;
	height: 10px;
	@include flex;
}

2.传递参数,参数后面的值为默认值

css 复制代码
@mixin flex($justify: flex-start, $align: flex-start) {
    display: flex;
    justify-content: $justify;
    align-items: $align;
}
//使用方法
.legend_box_item {
	width: 50%;
	height: 10px;
	@include flex;   //没传递参数,使用默认值
}
//===============================================
 .legend_box_item {
	width: 50%;
	height: 10px;
	@include flex(space-between,center);  //传递参数
}

3.类似于vue插槽用法

css 复制代码
@mixin flex($justify: flex-start, $align: flex-start) {
    display: flex;
    justify-content: $justify;
    align-items: $align;
    @content;  //类似vue的slot
}
//使用方法
 .legend_box_item {
	width: 50%;
	height: 10px;
	@include flex(space-between,center){
		color:#ffffff;   //这里就是放入插槽的内容
	};
}

二、全局引入scss文件

上面的混入不可能每个文件都写一份吧,而且你直接在main.ts文件引入一个scss文件,是没法使用里面的混合器以及变量的,必须在vite里面配置

javascript 复制代码
 css: {
    preprocessorOptions: {
      scss: {
        //原理很简单,就是在编译的时候,会把这字符串塞进每一个scss文件中,
        //相当于每个scss中都写了一个引入,所以这里可以引入多个scss文件
        additionalData: `@import "@/css/mixin.scss";
        				 @import "@/css/a.scss";
        				 @import "@/css/b.scss";`,  
      },
    },
  },
相关推荐
携欢6 分钟前
PortSwigger靶场之将 XSS 存储到onclick带有尖括号和双引号 HTML 编码以及单引号和反斜杠转义的事件中通关秘籍
前端·html·xss
三小河13 分钟前
工作中的Ai工具汇总
前端
mapbar_front32 分钟前
react项目开发—关于代码架构/规范探讨
前端·react.js
二木一夕38 分钟前
Vue 3 的组合式 API和传统选项式 API区别(vue2转vue3,两者差异)
前端
LuckySusu40 分钟前
【vue篇】Vue 项目中的静态资源管理:assets vs static 终极指南
前端·vue.js
LuckySusu41 分钟前
【vue篇】Vue.delete vs delete:数组删除的“陷阱”与正确姿势
前端·vue.js
LuckySusu42 分钟前
【vue篇】Vue 模板编译原理:从 Template 到 DOM 的翻译官
前端·vue.js
小菜摸鱼1 小时前
Node.js + vue3 大文件-切片上传全流程(视频文件)
前端·node.js
LuckySusu1 小时前
【vue篇】Vue 2 响应式“盲区”破解:如何监听对象/数组属性变化
前端·vue.js
LuckySusu1 小时前
【vue篇】Vue Mixin:可复用功能的“乐高积木”
前端·vue.js