Создание

Я предлагаю по шагам создать одностраничное приложение, с минимумом функций, которое после логина в 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).