Поработав немного, я вышел с этим решением.Сначала я создал отдельный файл .scss, переместил туда все стили компонентов, а затем добавил ссылку на компонент scss в свой файл vue sfc.
<!-- .vue -->
<template>
<div>
<div class="greeting">Hello {{name}}{{exclamationMarks}}</div>
<button @click="decrement">-</button>
<button @click="increment">+</button>
</div>
</template>
<script lang="ts">
import Vue from "vue";
export default Vue.extend({
props: ['name', 'initialEnthusiasm'],
data() {
return {
enthusiasm: this.initialEnthusiasm,
}
},
methods: {
increment() { this.enthusiasm++; },
decrement() {
if (this.enthusiasm > 1) {
this.enthusiasm--;
}
},
},
computed: {
exclamationMarks(): string {
return Array(this.enthusiasm + 1).join('!');
}
}
});
</script>
<style src="./Hello.scss" scoped></style>
Таким образом, у меня нет проблем с использованием переменныхиз импортированных файлов scss.
В этом примере класс приветствие определен в файле Hello.scss.Чтобы получить автозаполнение классов scss в моих файлах vue, я использую это расширение кода Visual Studio.
Если у вас есть лучшее решение, пожалуйста, поделитесь.