Я бы порекомендовал немного переписать код.
Прежде всего, вы можете написать переключатель имени класса как вычисляемое свойство:
// ... beginning of your .js code
computed: {
isButtonActive () {
return this.settingsButtonIsActive ? 'btn-primary' : 'btn-outline-primary'
}
}
// ... rest of your .js code
, затем вы можете объединить оба атрибута класса в один и связать его так:
<button v-on:click="settingsButtonIsActive = !settingsButtonIsActive"
:class="['btn', 'margin-top-half', 'center-block', 'col-xs-12', isButtonActiveClass">
<strong>{{labels.lblButtonConfiguration}}</strong>
</button>
Есть и другой вариант, но, поскольку вы переключаетесь между двумя классами, я думаю, что вычисляемое свойство является гораздо более чистым решением. Тем не менее, вы можете достичь того же результата и с помощью этого кода:
<button v-on:click="settingsButtonIsActive = !settingsButtonIsActive"
:class="['btn', 'margin-top-half', 'center-block', 'col-xs-12', {'btn-primary': isButtonActiveClass}, {'btn-outline-primary': !isButtonActiveClass}">
<strong>{{labels.lblButtonConfiguration}}</strong>
</button>
Обратите внимание, что когда я хочу динамически изменять классы, я передаю объект в массив.
Больше информации можно найти на https://vuejs.org/v2/guide/class-and-style.html.