vue中全局使用scss的变量和mixin

7 篇文章 0 订阅
4 篇文章 0 订阅

1、在项目中安装style-resources-loader和vue-cli-plugin-style-resources-loader插件

yarn add style-resources-loader --dev

yarn add vue-cli-plugin-style-resources-loader --dev

2、准备variables.scss和mixin.scss文件

// variables.scss文件

$white1: #fff;
$white2: rgba(255, 255, 255, 0.7);
$green: #02a6b5;
$yellow: #ffeb7b;
$border1: 1px solid rgba(25, 186, 139, 0.17);
$border2: 2px solid $green;

// The :export directive is the magic sauce for webpack
// https://mattferderer.com/use-sass-variables-in-typescript-and-javascript
:export {
  green: $green;
}
// mixin.scss文件
@mixin border-around {
  position: absolute;
  content: '';
  width: 10px;
  height: 10px;
}

3、在项目的vue.config.js中配置style-resources-loader插件

module.exports = {
  pluginOptions: {
    'style-resources-loader': {
      preProcessor: 'scss',
      patterns: [
        // 路径根据具体需求更改
        path.resolve(__dirname, 'src/styles/variables.scss'),
        path.resolve(__dirname, 'src/styles/mixin.scss')
      ]
    }
  }
}

4、在vue单文件中使用scss变量

<template></template>

<script>
import { defineComponent } from 'vue'
import variables from '@/styles/variables.scss'
export default defineComponent({
  setup() {
    const $green = variables.green 
  }
})
</script>

<style lang="scss" scoped>
.box {
  color: $green;
  @include border-around;
}
</style>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值