Использую laravel + vuex структурой на картинке выше. Все отрабатывает так как надо, и теперь встал вопрос о состоянии всех модулей, т.к. оно не обнуляется при роутинге, а я любитель вызывать нужные компоненты в другом компоненте, чтобы не бегать по роутам, да и в будущем это необходимо. В случае успеха я обнуляю сразу состояние, но если будет ошибка, то ее нужно вывести (например машина с таким гос.номером уже существует) и ошибка остается в состоянии, ошибки нужно всегда чистить через вызов мутации... Поэтому подумал, почему бы при роутинге не вызывать defaultstate, чтобы информация например об ошибках в состоянии зачищалась. Но знаний не хватает. И где лучше его вызывать, я думаю в routes.js при переходах вызывать постоянно defaultstate, но кажется это не очень хорошая идея, может есть лучше?...
Для примера мой модуль cars:
/cars/index:
import state from './state';
import * as getters from './getters';
import * as mutations from './mutations';
import * as actions from './actions';
export default {
namespaced: true,
state,
getters,
mutations,
actions
}
/cars/state:
export default {
cars: [],
car: {},
snackbar: {
timeout:4000,
color:null,
show: false,
text:null,
},
form: {
name: null,
vin: null,
mark: null,
model: null,
fuel: null,
type: null,
tarif: null,
department_id: null
},
errors: {}
}
/store/index
import Vue from 'vue';
import Vuex from 'vuex';
Vue.use( Vuex );
import state from './state.js';
import * as getters from './getters.js';
import * as mutations from './mutations.js';
import * as actions from './actions.js';
import upl from './modules/uploads/';
import dep from './modules/departments/';
import car from './modules/cars/';
export default new Vuex.Store({
namespaced: true,
state,
getters,
mutations,
actions,
modules: {
dep, upl, car
}
});
В действиях и мутациях, думаю, ничего интересного нет, т.к. там проблем нет.