Допустим, у вас есть themeA
и themeB
, и вы сохраняете эти значения с помощью Vuex.Итак, я бы поместил эти основные классы в главном компоненте, скажем, в #app
(App.vue
), например:
<div id="app" v-bind:class="{ 'theme-a': isThemeA, 'theme-b': isThemeB} "></div>
Где с помощью геттера Vuexs вы получите логическое значение для этихсостояния.
Позже, в SomeComponent.vue
я бы использовал селектор theme-*
, чтобы стилизовать их:
<template>
<div id="some-component">
<!-- your markup -->
</div>
</template>
<script>
export default {
name: 'some-component'
}
</script>
<style lang="scss">
.theme-a {
.some-selector { //styles for theme A }
}
.theme-b {
.some-selector { //styles for theme B }
}
</style>
Что бы отлично работать.