# Неделя #3 Погружаемся в Redux


# Подготовка к выполнению задания

  1. Изучить все материалы второй недели курса в Личном кабинете.

# Что нужно сделать?

# Выполнить домашнее задание #7 (Пицца!)

Готовим пиццу! В данной работе нужно написать единственный редьюсер, который обрабатывает заказы на пиццу. Все компоненты работают только с одним массивом заказов, но, все данные в этом заказе уже есть. Посмотрите с помощью redux-dev-tools какие экшены отправляются по нажатию на кнопки. Все компоненты присутствуют, коннекты тоже, ваша задача — разобраться с редьюсерами.

Порядок работы:

  1. Получите домашнее задание №7 (react-course -h homework-7-pizza)
  2. Ознакомиться с примером работы, чтобы понять, как будет выглядеть финальное приложение.
  3. Изучите cypress/integration/homework.spec.js чтобы понять какой функционал должен быть реализован.
  4. Начните работу с src/reducers/orders.js. В нем необходимо определить редьюсер для обработки заказов.

# Выполнить домашнее задание #8 (TV Maze catalog)

Используя api сервиса tvmaze.com необходимо построить систему поиска сериалов по названию и описанию. Также требуется сделать роутинг и переходы на страницы найденных сериалов. На страницах сериалов нужно обязательно отразить актеров, которые участвовали.

Требования к домашнему заданию:

  1. Для работы с api в репозитории будет находится фаил src/api.js с готовыми функциями для поиска и получения сериала по id.
  2. Сетевые запросы должны совершаться из middleware.
  3. Для работы с асинхронными запросами нужно воспользоваться 3 экшенами _REQUEST, _SUCCESS, _FAILURE.
  4. Для создания всех экшенов использовать метод createAction из библиотеки redux-actions.
  5. Для описания редьюсеров желательно использовать метод handleActions из библиотеки redux-actions.
  6. Для каждого сериала url страницы должен выглядеть как /shows/:id где idid сериала с сайта tvmaze.com.
  7. При переходе на страницу сериала из поиска должен совершать сетевой запрос за информацие о сериале, и в это время нужно отражать надпись, сообщающую о том, что происходит загрузка.
  8. При поиске на странице поиска также должна выводиться надпись о том, что происходит загрузка, пока происходит сетевой запрос.
  9. Выдача результатов поиска должна содержать картинки, краткое содержание и ссылку на страницу сериала.

Подсказки Поле summary в ответах на запросы api.tvmaze.com содержит описание вместе с html тегами. Чтобы вывести html в реакте, воспользуйтесь методом dangerouslySetInnerHTML:

<div dangerouslySetInnerHTML={{__html: summary}} />

Порядок работы:

  1. Получите домашнее задание №8 (react-course -h homework-8-tv-maze-catalog)
  2. Ознакомиться с примером работы.
  3. Изучите cypress/integration/homework.spec.js чтобы понять какой функционал должен быть реализован.
  4. Начните работу с AppRouter.js. В нем необходимо определить роутер вашего приложения.
  5. Реализуйте страницу поиска в файле Search.js вам также потребуется реализовать компонент ShowPreview.
  6. Реализуйте страницу шоу ShowPage.
  7. Создайте редьюсеры show и search. Используйте метод combineReducers. Для начала можете захардкодить данные.
  8. Создайте стор в store.js.
  9. Подключите redux к вашим компонентам при помощи connect.
  10. Реализуйте searchMiddleware и showMiddleware. В них вы будете выполнять запросы на сервер.
  11. Запустить тесты и убедиться, что они прошли
  12. Сделайте коммит и пуш изменений
  13. Создайте пулл реквест и отправьте его на проверку наставнику

# Выполнить домашнее задание #9 (Github followers list)

Ваша задача написать используя redux-saga написать небольшое приложение, получающее информацию о пользователе и его подписчиков. Необходимо написать саги, редьюсеры, компоненты и роутер

Порядок работы

  1. Получите домашнее задание №9 (react-course -h homework-9-github-follower-list)
  2. Ознакомиться с примером работы, чтобы понять, как будет выглядеть финальное приложение.
  3. Начните работу с Router.js. В нем необходимо определить роутер вашего приложения.
  4. Реализуйте store.js подключите саги и redux-developer-tools.
  5. Реализуйте модули Auth, User и Followers. Они организованы по методу ducks.
  6. Допишите недостающий код в компонентах.
  7. Запустить тесты и убедиться, что они прошли
  8. Сделайте коммит и пуш изменений
  9. Создайте пулл реквест и отправьте его на проверку наставнику

# Как всё успеть?

Данный план является примерным ориентиром. Вы всегда можете работать в удобном для себя темпе.

# 🗓 Понедельник

Изучаем материалы модуля "I Redux".

Изучаем домашнее задание 7 и выполняем его.

Подготовьте вопросы к данному модулю.

# 🗓 Вторник

Изучаем материалы модуля "I Redux".

Возможно все еще выполняем домашнее задание 7.

# 🗓 Среда

Сдаём домашнее задание 7 на проверку.

Изучаем материалы модуля "II Redux".

Работаем над домашним заданием 8.

Подготовьте вопросы к данному модулю.

# 🗓 Четверг

Работа над дз8.

# 🗓 Пятница

Сдаём домашнее задание 8 на проверку.

Приступаем к домашнему заданию 9.

20:00. Участвовать в практическом вебинаре.

# 🗓 Суббота

Работа над ДЗ9

Изучаем материалы модуля "I Redux-saga".

# 🗓 Воскресенье

Работа над ДЗ9

Созваниваемся с наставником

Сдаём домашнее задание 9 на проверку.