Перерабатываем приложение, переводим его на Vue.js. После разбивки на однофайловые компоненты начали использовать Vuex и возник вопрос - вся прелесть Vue для меня в реактивности данных.
Но Vuex требует использования мутаций, а не прямого изменения данных в Vuex. Как быть?
Пример - в компоненте есть поле chekbox как сделать чтобы данные в него выводились из Vuex и менялись в Vuex? Т.е. была реактивность?
Сделал так - в компоненте вел переменную tmp которая при инициализации в data() получает значение из Vuex объекта state и связывается с chekbox'ом через v-model.
А при событии изменения вызывается метод который изменяет объект Vuex в зависимости от состояния этой временной переменной.
<input type="checkbox" change ="changePrintTwoActs" v-model="tmpActsPrintPages">
data() {
return {
tmpActsPrintPages: this.$store.state.app.actsPrintPages==2 ? true : false
}
},
methods: {
changePrintTwoActs : function () {
this.$store.state.app.actsPrintPages = this.tmpActsPrintPages ? 2 : 1;
....
Мне кажется, что это костыль. Как более правильно пользоваться реактивностью Vue при использовании Vuex?