Придерживался компонентного подхода в соответствии с принципами React. Архитектура строилась по принципу "smart/dumb" компонентов.
Этот подход promotes:
Для управления состоянием использовал Redux (с Redux Toolkit), для маршрутизации — React Router. Взаимодействие с API реализовывалось через async/await с использованием Axios.
Структура проекта была организована по фичам (папка для каждого логически связанного модуля функциональности), внутри которых располагались соответствующие компоненты (умные и глупые), редюсеры (если использовался Redux), экшены и т.д. Общие компоненты (например, кнопки, инпуты) выносились в отдельную папку components/common. Утилиты располагались в utils. Хуки - в hooks.
javascript