боундари
2) В редакс
3) ...
Мне ответили, что в редакс
но я не могу найти информации почему именно в редакс лучше
как на счёт производительности и тд
Можете поделится ссылкой или несколько комментариев почему так?
лучше ошибки не кидать что бы их не отлавливать
ну АПИ все-таки думает о другом те же 401 должны быть
ловить на слое апи такое и преобразовывать к типу с 2 мя возможными состояниями типо "maybe" или "either" google it
ну а все же по существу где лучше их отлавливать ?
ближе к месту где возникают, на слое апи
то есть на фронте вообще не нужно? )
нужно, на слое апи, говорю же)
у тебя есть модуль, класс, функция типо api.get('...')
Ну на 401 я делал специальную redux-sagа, которую вызывал из других redux-saga и в которую передавал конфигурацию запроса (AxiosRequestConfig), validationShema (на yup) проверяющую соответсвует ли данные полученные от сервера тому что мы от него ожидаем. ВНутри этой saga выполнялась проверка на 401 и предпринимались действия в зависимости от логики приложения: например обнуление isAuthenticated, дополнительные запросы для обновление токенов ит.д. В общем все что обычно делают внутри axios Interceptor, а также осуществлялась проверка на валидность ответа от сервера. Преимуществом такого поддхода по сравнению с axios interceptor являеться то что логиrа приложения не выходит за пределы redux-saga/ Если ошибка не касалась тех моментов которые подлежали обработке, внутри saga request executor, то она передавалась на верх в сагу из который был сделан вызов saga request executor. Используя данный подход удалось избежать значительного дублирования кода, при работе с запросами к серверу.
Также это можно сделать на санках, но я их не люблю)))
Ну лично я action фактически использую как сеттеры, которые устанавливают какое либо значение в стэйте соответсвующего редьюсера. А всю логику предпочитаю делать в saga в совокупности с redux-toolkit получается очень вкусно. А вы похоже используете классический редакс, вот его лучше таки не использовать. СЛишком много бойлерплэйта и мы за него не получаем никаких преимуществ.
спасибо за развернутый ответ!)
Обсуждают сегодня