Первым и самым большим препятствием для создания этого приложения было изучение Redux. Redux был дополнительной частью предыдущего этапа обучения, на который у меня не было времени добраться в тот момент. Я хотел усложнить этот проект, поэтому с самого начала погрузился в изучение того, как использовать Redux. Новый способ (для меня) создавать и манипулировать состоянием.
Раньше я использовал useState для создания состояния и добавления начального значения в состояние, как мне приходилось это делать. После того, как я проделал это от двадцати до ста раз, он довольно хорошо вонзился в меня. У меня была хорошая идея, как создавать и передавать состояние с верхних слоев на любой необходимый уровень. Я понял, как это сделать, но этот метод гораздо более подвержен ошибкам, чем Redux. Redux дает каждому компоненту доступ к состоянию с помощью импорта вместо того, чтобы передавать все как реквизит. Это значительно упрощает передачу вещей с более низких уровней на более высокие.
В Redux есть три принципа.
Должен быть один-единственный источник правды. Это создает одно место для поиска ошибок, одно место для изменения способа хранения вещей, одно место для беспокойства обо всех вещах, касающихся состояния. Если вам не нужно пропускать вещи 5 или 6 раз через слои дерева, а вместо единого пространства, которое может соединяться со всеми ветвями, это упрощает работу как с успехами, так и с неудачами типичного кодирования.
Состояние только для чтения. Вы никогда не пишете напрямую в состояние, вместо этого для изменения состояния должно произойти действие. Опять же, простота отладки и отладки составляет около 80% кода.
Функции, используемые для управления состоянием, являются чистыми функциями. Чистые функции всегда будут возвращать один и тот же результат при одних и тех же аргументах. При использовании этих функций они принимают старое состояние и возвращают совершенно новое состояние при редактировании старого состояния.
В этом приложении я использовал Redux для основных аспектов CRUD, а также использовал useState, просто чтобы продемонстрировать понимание обоих. Демонстрируя навыки, я решил, что было бы лучше продемонстрировать несколько способов обработки состояния.
Кое-что, что я начинаю понимать довольно хорошо, — это обработка ошибок. Я изменил свой метод обработки ошибок, вместо того, чтобы создавать отдельные спасательные операции в каждом контроллере, я создал одно спасение на верхнем уровне, контроллере приложений, что сделало все более последовательно обработанным. Вместо создания пользовательского сообщения во внешнем интерфейсе я позволяю загружать сообщение с сервера и отображать его так, как предполагалось.
Учиться и внедрять новые вещи стало проще. Понимание того, как учиться, всегда является трудностью при изучении чего-то нового. Процесс меняется и адаптация всегда разная. Увидеть что-то новое сейчас не совсем чужой опыт, и вместо этого он оставляет несколько моментов замешательства, в отличие от того, чтобы быть полностью ошеломленным и чувствовать, что я начинаю все сначала. Это все дополнение к базе, которая у меня уже есть, вместо новой базы, которую мне нужно построить. Всегда полезно держать это в поле зрения.