/goit-react-hw-04-movies

themoviedb.org react router movie find published on netfly

Primary LanguageJavaScript

goit-react-hw-04-movies

Критерії прийому

  • Створено репозиторії goit-react-hw-04-movies
  • При здачі домашньої роботи є посилання: на вихідні файли і робочу сторінку проектів на Netlify
  • У стані компонентів зберігається мінімально необхідний набір даних, інше обчислюється
  • При запуску коду завдання, в консолі немає помилок і попереджень
  • Для кожного компонента є окрема папка з файлом React-компонента і файлом стилів
  • Для компонентів описані propTypes, і де необхідно, defaultProps
  • Все що компонент очікує у вигляді пропів, передається йому при виклику
  • Імена компонентів зрозумілі, описові
  • JS-код чистий і зрозумілий, використовується Prettier
  • Стилізація робиться тільки SASS, CSS-модулями або Styled Components. Можна використовувати бібліотеки компонентів.

Завдання «Кінопошук»

Створи базову маршрутизацію для програми пошуку і зберігання фільмів. Прев'ю робочого додатку дивись за посиланням.

API themoviedb.org

Для бекенда використовуй themoviedb.org API. Необхідно зареєструватися (можна ввести довільні дані) і отримати API-ключ. У цій роботі будуть використовуватися такі ендпоінти.

Посилання на документацію

Маршрути

У додатку повинні бути наступні маршрути. Якщо користувач зайшов по неіснуючому маршруту, його необхідно перенаправляти на домашню сторінку.

  • '/' - компонент <HomePage>, домашня сторінка зі списком популярних кінофільмів.
  • '/movies' - компонент <MoviesPage>, сторінка пошуку фільмів по ключовому слову.
  • '/movies/:movieId' - компонент <MovieDetailsPage>, сторінка з детальною інформацією про кінофільми.
  • /movies/:movieId/cast - компонент <Cast>, інформація про акторський склад. Рендериться на сторінці <MovieDetailsPage>.
  • /movies/:movieId/reviews - компонент <Reviews>, інформація про огляди. Рендериться на сторінці <MovieDetailsPage>.

Code Splitting (розщеплення коду)

Додай асинхронне завантаження JS-коду для маршрутів додатки використовуючи React.lazy() і Suspense.