Можете ли вы помочь решить, какая из архитектур будет лучше
(получение списка из API с помощью response-native, реагировать-избыточно, избыточно-преобразовано)
- пример
// component
componentDidMount() {
this.props.dispatch(fetchFunction());
}
// thunk action
fetchFunction () {
dispatch START_LOADING
return dispatch (
fetch()
dispatch SUCCESS_LOADING
);
}
ИЛИ
- пример
// component
componentDidMount() {
this.setState({'loading': true})
this.props.dispatch(fetchFunction()).finally(
this.setState({'loading': false})
);
}
//thunk action
fetchFunction () {
return dispatch (
fetch()
dispatch SUCCESS_LOADING
);
}
Моя идея о хранении "процесса загрузки" в состоянии локальных компонентов? Каковы плохие и хорошие стороны этого подхода?
как я вижу - пример 2:
Если загрузка занимает больше времени, я могу оставить компонент (он отключается), и я увижу предупреждение - «изменение состояния на отключенном компоненте»
1 пример:
Сохраняет много дополнительных данных, которые мне не нужны, в избыточном хранилище (также много данных, которые мне нужно исключить из постоянного хранилища), и, например, если у меня есть компонент продукта интернет-магазина, у меня будет много реквизитов пользовательского интерфейса, хранящихся в redux (например, список из 10 товаров, и у каждого товара есть свои кнопки с состояниями) :(
НО мне это нравится, потому что вся логика остается в redux-thunk-actions, и мне не нужно заботиться о компоненте, как продолжить кодирование после отправки, было ли это обещанием или не было примером:
this.props.dispatch(fetchFunction()).then(() => {});
или просто
this.props.dispatch(fetchFunction());
.. some code
До сих пор я делал простые проекты, и оба способа работали нормально.
Не могли бы вы дать несколько советов, по какому пути пойти на более крупный проект?