Всем привет! Помогите разобраться с flux.
1. Где совершать CRUD операции ?
Сейчас я делаю в action, но в интернетах пишут что там нельзя.
Мне не понятно почему не action, так как тут происходит общение с "миром". Каждое действие возвращает Promise, например для использования в resolve в ui-router.
Пример кода:
class TodoAction {
constructor($http) {
this.$http = $http;
}
loadList(params) {
return this.$http.get('/todos', {
params: params
}).then((response) => {
AppDispatcher.dispatch({
actionType: TodoConstants.todo_LIST_LOAD,
todos: response.data.todos
});
return response.data.todos;
})
}
create (todo) {
return this.$http.post('/todo/save', {
todo_data: todo
}).then((response) => {
AppDispatcher.dispatch({
actionType: TodoConstants.todo_CREATE,
todo: response.data.todo
});
})
}
}
2. Я верно понимаю что один store для одного типа данных ?
Например, если у нас есть страница со списком задач и страница задачи, то получается два store ?
Если так, то список задач не может сам сохраняться, это будет происходить через store задачи. В свою очередь, store задачи будет общаться со списком задач и обновлять данные там... помоему что-то тут не так :(
3. Насколько я понял flux, то в нём store оповещают только о том что в них
что-то изменилось, а если нужно отследить конкретное действие ?
Например: есть select со списком, рядом кнопка "добавить". При клике на добавить открывается форма добавления. После успешного добавления, в список должен добавиться новый пункт и сразу быть выбран. Как это реализовать зная лишь о том что
что-то изменилось, ведь измениться может что угодно.