VueJS 和 SASS - 在脚本中导入和使用 SASS 变量

Posted

技术标签:

【中文标题】VueJS 和 SASS - 在脚本中导入和使用 SASS 变量【英文标题】:VueJS and SASS - Import and use SASS variables in script 【发布时间】:2021-06-30 04:15:48 【问题描述】:

我目前正在开发一个集成了 SASS 的 VueJS 项目,我想访问组件脚本部分中的 SASS 变量以进行动态样式计算。我看到了纯 JS 的示例,我正在尝试将其转换为 VueJS 组件。 到目前为止,我已经能够在Vue文件的style部分集成SASS变量,但是我无法将变量导入到组件的脚本中。

我尝试了以下方法: 从我的 scss 文件中导出变量:

:export 
    primaryColor: $primary;

然后在我的组件中导入文件:

import variables from '@/assets/scss/main.scss'

然后像这样访问它:variables.primaryColor

但我无法让它工作,variables 始终是一个空对象,里面没有任何值。我正在使用 Nuxt 并安装了包 node-sasssass-loader。任何帮助将不胜感激!

【问题讨论】:

【参考方案1】:

如果您只想访问 SASS 文件中的变量,可以将其添加到 configureWebpack 中的 vue.config.js 文件中:

module:
  rules: [
    test: /\.scss$/,
    use: [
      loader: "style-loader"
    , 
      loader: "css-loader" 
    , 
      loader: "sass-loader"
    ]
  ]

然后假设您有一个包含名为 style.sass 的 SASS 变量的文件,看起来像这样

$btn-color: #D75893

:export
    buttonColor: $btn-color

在您的<script> 标签中,您可以像这样导入您的 SASS 变量文件

import styleInfo from 'style.sass';

并像这样访问您的变量

console.log("The button color is", styleInfo.buttonColor);

注意:是not possible在编译变量时在运行时动态改变SASS变量。

来源: This article from HashRocket 和 This article from itnext

【讨论】:

非常感谢您的回答!我正在使用 Nuxt,所以它增加了一点复杂性,但我希望你的回答给了我足够的信息。 ?

以上是关于VueJS 和 SASS - 在脚本中导入和使用 SASS 变量的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Vue 单文件组件中导入和使用图片?

在 cassandra 中导入和导出模式

如何在 material-ui 主题中导入和使用自定义字体?

在 Angular 中导入和使用 lodash 的正确方法

如何在 Aurelia 中导入和使用 RobinHerbots 的 Inputmask

在 OCaml 中导入和解析日历