Создание

Я предлагаю по шагам создать одностраничное приложение, с минимумом функций, которое после логина в VK и подтверждения прав доступа к фото, будет выдавать топ ваших "залайканных" фото в порядке убывания. Схематично, приложение можно представить следующим образом:

app preview

Прежде чем описывать структуру, давайте в общих чертах взглянем на Redux.

Redux - приложение это:

  • состояние (store) приложения в одном месте;

  • однонаправленный поток данных: случился action -> редьюсер по команде "фас" отработал и вернул новое состояние -> компонент(ы) обновились;

Redux вдохновлен Flux методологией и языком программирования Elm

Под капотом, Redux использует старую фичу реакта - context, которая обрела вторую жизнь в версии реакта 16.3 - "New context API".

Есть старый context, который использует Redux, и есть новое Context API, не путайте.

Файлы и папки:

Изначально наше приложение в файловом менеджере должно выглядеть так (создайте недостающие директории в src):

+-- src
| +-- actions
| +-- components
| +-- containers
| +-- reducers
| +-- utils
+-- файлы-от-create-react-app
+-- ...

Для обучения мы будем использовать очень распространенный подход организации файлов: деление на контейнеры и компоненты + экшены и редьюсеры в отдельных директориях.

Есть и другие подходы, мне нравится композиция по фичам/страницам (EN).