【SCSS】全局变量不生效问题; js 中使用 scss 变量问题(vue3 项目)

  1. 全局变量文件, 可以在 vue.config.js 中 webpack 配置 addtionalData 中配置, 之后直接在其他 scss 文件中使用
  2. 但注意, 用到全局变量的其他 scss 文件被 @use 引用时, 如果内部没有手动 @use 此文件, 仍会报错(@import 就没事儿), 所以还是建议 scss 内部使用 @use 引入全局变量文件
  3. 定义 *.module.scss 文件, 使用 :export { // ... } 导出 scss 变量给 Vue3 , template 和 script 使用(需要 import xxx from …)
Vue项目中,你可以通过以下步骤来在一个公共的SCSS文件中声明颜色变量,并在各个Vue组件中引用它们: 1. **创建全局变量**: 在`src/assets/styles/variables.scss` 或者其他合适的公共样式目录下,创建一个名为 `variables.scss` 的文件。在这个文件中,声明你的颜色变量,例如: ```scss // variables.scss $primary-color: #007BFF; $secondary-color: #6C757D; ``` 2. **使用混合(mixins)**: 如果你想避免在每个组件的样式表中直接导入,可以使用 SCSS 混合功能。创建一个包含变量的混合,然后在需要的地方使用它: ```scss // _color-variables.scss (假设已引入) @mixin color($var) { color: $var; } ``` 然后在你的组件的`styles.vue`或者单独的`.scss`文件中引用这个混合: ```scss // styles.vue or your-component.scss .your-class { @include color($primary-color); } ``` 3. **使用`@import`指令**: 在每个需要使用的组件的样式表中,你可以直接`@import`包含变量的文件,让变量生效: ```scss // single-file component&#39;s style <style scoped> @import "../assets/styles/variables"; .your-class { color: $primary-color; } </style> ``` 使用`scoped`属性确保CSS仅应用于当前组件。 4. **利用预处理器插件**: Vue CLI 提供了一些如 `vue-cli-plugin-vuetify` 的插件,它们有自己的主题系统,允许你在全局设置颜色变量并引用到所有组件。如果没有使用这样的插件,可以考虑安装像 `sass-resources-loader` 这样的工具,将全局的SCSS文件链接到Vue项目的各个部分。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值