Loading

Vue 中实现全局引入 scss 变量

导读

最终实现的效果是:在 vue 文件的 style 标签中以及其它 scss 文件中都可以直接使用全局配置的 scss 变量,不需要再导入对应的 scss 文件。

目录结构

src
│  App.vue
│  main.js
│
├─assets
│  └─styles
│          index.scss
│          variables.scss

配置

// vue.config.js
module.exports = {
// ... other config
  css: {
    loaderOptions: {
      scss: {
        additionalData: `@import "~@/assets/styles/variables.scss";`,
      },
    },
  },
  // ... other config
}

使用

// variables.scss 文件

//  主题色
$themeColor: #0dbc5c; // 一级主题色
$subThemeColor: #51ec97; // 二级主题色

// 字体
$fontColor: #d15656;

// 长度
$w200: 200px;
<template>
  <!-- App.vue -->
  <div id="app">
    <h2>配置全局 scss 变量</h2>
    <div class="box1">哈哈哈</div>
  </div>
</template>

<script>
export default {
  name: 'App',
}
</script>

<style lang="scss" scoped>
.box1 {
  // 👇 直接使用 scss 变量
  width: $w200;
  height: $w200;
  padding: 10px;
  border-radius: 10px;
  background-color: $themeColor;
  color: $fontColor;
}
</style>
```≈
posted @ 2022-12-17 20:22  资深if-else侠  阅读(602)  评论(0编辑  收藏  举报