Vue-cli中使用scss 的全局變量和 @mixin

安裝 scss

npm  install sass-loader@10.1.1 --save-dev
npm install node-sass --sava-dev

注意:sass-loader需要指定@10的版本,因為后續(xù)的版本在vue-cli腳手架中會出現(xiàn)一些問題

基礎(chǔ)使用

<style lang="scss" scoped>
  .xxxx {
    .xxx-x {
      ...
    }
  }
</style>

大部分場景下,使用scss可以實現(xiàn)上面的樣式嵌套層級關(guān)系,相信大家都用過。

下面要說下scss的進(jìn)階用法。scss 全局變量和mixin。

環(huán)境配置

想要在vue-cli中全局使用 scss的全局變量和 @mixin樣式混入,需要安裝插件,然后在 vue.conf.js 中配置

npm install style-resources-loader vue-cli-plugin-style-resources-loader --save-dev

vue.config.js 中配置

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

scss全局變量的使用

上述環(huán)境配置中配置的 variables.scss 就是全局的變量文件

variables.scss

$--color-primary: #468fff;
$--color-primary-active: #69a5ff;

xxx.vue 文件中直接使用該變量

<style lang="scss" scoped>
.main-wrap {
    background: $--color-primary;
}
</style>

@mixin與@include實現(xiàn)css編程式風(fēng)格

mixin.scss
@mixin 函數(shù)名($參數(shù)名: 默認(rèn)值)

@mixin flex($justify-content: center, $align-center: center, $flex-direction: row){
  display: flex;
  justify-content: $justify-content;
  align-items: $align-center;
  flex-direction: $flex-direction;
}

xxx.vue 中使用
使用 @include 進(jìn)行引用即可

<style lang="scss" scoped>
.main-wrap {
  @include flex(center,center,row);
}
</style>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容