npm install sass-loader@10.1.1 --save-dev npm install node-sass --sava-dev
注意:sass-loader須要指定@10的版本,由於後續的版本在vue-cli腳手架中會出現一些問題
<style lang="scss" scoped> .xxxx { .xxx-x { ... } } </style>
大部分場景下,使用scss能夠實現上面的樣式嵌套層級關係,相信你們都用過。
下面要說下scss的進階用法。scss 全局變量和mixin。javascript
想要在vue-cli中全局使用 scss的全局變量和 @mixin樣式混入,須要安裝插件,而後在
vue.conf.js
中配置
npm install style-resources-loader vue-cli-plugin-style-resources-loader --save-dev
vue.config.js
中配置css
module.exports = { pluginOptions: { 'style-resources-loader': { preProcessor: 'scss', patterns: [ // 路徑根據具體需求更改 path.resolve(__dirname, 'src/assets/styles/variables.scss'), path.resolve(__dirname, 'src/assets/styles/mixin.scss') ] } } }
上述環境配置中配置的
variables.scss
就是全局的變量文件
variables.scss
vue
$--color-primary: #468fff; $--color-primary-active: #69a5ff;
xxx.vue
文件中直接使用該變量java
<style lang="scss" scoped> .main-wrap { background: $--color-primary; } </style>
mixin.scss
@mixin 函數名($參數名: 默認值)
node
@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 進行引用便可
vue-cli
<style lang="scss" scoped> .main-wrap { @include flex(center,center,row); } </style>