Каким будет ваш рекомендуемый масштабируемый подход и почему?
Вариант 1. Выполнение вызовов API для изменения внутренних данных и обновление хранилища вручную в рамках redux
// saga
export function * updateList(action){
yield call list endpoint
yield put(updateListCompleted(action))
}
// action
updateListCompleted (action){
return {
type: 'UPDATE_LIST_COMPLETED',
action,
}
}
// reducer
function reducer(state = initialState, action) {
switch (action.type) {
case actionTypes.UPDATE_LIST_COMPLETED:
return {...state, {...action.listData})
}
Вариант 2. Создание APIвызовы для модификации данных бэкэнда и последующего вызова GET для обновления магазина
// saga to update backend list
export function * updateList(action){
yield call update list endpoint
yield put(getListAction(action))
}
// action
getListAction (action){
return {
type: 'GET_LIST',
action,
}
}
...
// this is triggered by the GET_LIST action
export function * getList(action){
yield call get list endpoint
yield put(getListCompleted(responseFromListEndpoint))
}
// action
getListCompleted (response){
return {
type: 'GET_LIST_COMPLETED',
response,
}
}
// reducer
function reducer(state = initialState, action) {
switch (action.type) {
case actionTypes.GET_LIST_COMPLETED:
return {...state, {...action.response})
}