vue项目里使用scss全局变量

本文档介绍了如何在Vue项目中创建并应用SCSS全局变量。首先,在src/style目录下创建variables.scss.js文件,定义所需变量。然后,在vue.config.js中通过webpack配置,使scss变量在编译时注入到每个scss文件。重启项目后,可以在.vue文件的<style>标签内或单独的.scss文件中直接使用这些变量。通过这种方法,可以实现项目的统一风格和易于维护的代码。
首先:

在项目的src文件夹下的style文件夹下创建scss变量js文件

如图:
在这里插入图片描述

创建好的variables.scss.js文件里定义需要全局定义的scss变量

/*
* 项目css基础变量设置
* ps:修改变量后需要需要重启项目生效
*/
const variables = {
    color_333:'#333',
    size_16:'16px',
}
module.exports = variables
接下来:

需要在vue.config.js文件里使用webpack处理variables.scss.js文件

const scssVariables = require('./src/style/variables.scss.js');
//module.exports里添加如下配置:
module.exports = {
    //...其他配置
    css: {
        loaderOptions: {
          sass: {
            prependData: Object.keys(scssVariables)
              .map(k => `\$${k.replace('_', '-')}: ${scssVariables[k]};`)
              .join('\n')
          }
        }
    }
}

做好上述配置,重启项目就可以在项目里使用定义的scss变量啦

使用方法:

1.文件.vue文件里使用:

//style里面使用:
<style lang="scss" scoped>
.title {
  color: $color_333;
  font-size: $size_16;
}
</style>
//行内样式使用:得先引入scss变量js文件
<div :style="{color:variables.color_f3f3f3,fontSize:variables.size_16}">颜色</div>
import variables from "@/style/variables.scss.js"
//data里定义
data(){
    return {
        variables
    }
}

2.单独的.scss文件中使用

//直接使用变量就行了
.title{
    color: $color_333;
    font-size: $size_16;
}

以上就是在vue中使用scss变量的方法啦,喜欢的小伙伴点个收藏哦。

Vue项目使用Vite配置SCSS全局变量,可按以下步骤操作: ### 1. 在`vite.config.js`中配置 在`vite.config.js`文件scss全局变量进行配置,示例代码如下: ```javascript import { defineConfig, fileURLToPath } from 'vite'; import vue from '@vitejs/plugin-vue'; import vueDevTools from 'vite-plugin-vue-devtools'; export default defineConfig({ plugins: [ vue(), vueDevTools() ], css: { preprocessorOptions: { scss: { additionalData: `@use "@/styles/variables.scss" as *;` } } }, resolve: { alias: { '@': fileURLToPath(new URL('./src', import.meta.url)) } } }); ``` 这通过`css.preprocessorOptions.scss.additionalData`引入了全局变量文件`variables.scss`,并使用`@use`规则将其内容导入,`as *`表示将所有变量和混合宏等引入到全局作用域中。同时使用`resolve.alias`配置了`@`别名指向`src`目录 [^1]。 ### 2. 在`vite.config.ts`中配置 若项目使用TypeScript,可在`vite.config.ts`中进行配置,示例代码如下: ```typescript import { defineConfig, ConfigEnv, UserConfigExport } from 'vite'; import vue from '@vitejs/plugin-vue'; import path from 'path'; export default ({ command }: ConfigEnv): UserConfigExport => { return { resolve: { alias: { '@': path.resolve(__dirname, './src') } }, // scss全局变量配置 css: { preprocessorOptions: { scss: { additionalData: '@use "@/styles/variable.scss" as *;' } } } }; }; ``` 同样是通过`css.preprocessorOptions.scss.additionalData`引入全局变量文件`variable.scss`,并使用`@use`规则引入到全局作用域。使用`resolve.alias`配置`@`别名指向`src`目录 [^3]。 ### 3. 在组件中直接使用 配置完成后,在组件中就可以直接使用全局变量,示例代码如下: ```vue <template> <div class="logo"></div> </template> <style scoped lang="scss"> .logo { width: 100%; height: $layout-logo-height; background-color: $color; } </style> ``` 在这个组件样式中,直接使用了`$layout-logo-height`和`$color`这两个全局变量 [^3]。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值