An open API service indexing awesome lists of open source software.

https://github.com/yuriyvyatkin/ra-hw-8.2-use-json-fetch-backend

ДЗ №2 к лекции «hooks, Context API» курса «React» Нетологии
https://github.com/yuriyvyatkin/ra-hw-8.2-use-json-fetch-backend

Last synced: 2 months ago
JSON representation

ДЗ №2 к лекции «hooks, Context API» курса «React» Нетологии

Awesome Lists containing this project

README

          

# Домашнее задание №2 к лекции «hooks, Context API»

[Ссылка на Heroku](https://use-json-fetch-backend-2021.herokuapp.com/)

useJsonFetch
===

Реализуйте кастомный хук `useJsonFetch`, который позволяет с помощью `fetch` осуществлять HTTP-запросы.

Использование этого хука должно выглядеть следующим образом:
```javascript
const [data, loading, error] = useJsonFetch(url, opts);
```

где:
* `data` - данные, полученные после `response.json()` (не Promise, а именно данные)
* `error` - ошибка (ошибка сети, ошибка ответа - если код не 20x, ошибка парсинга - если пришёл не JSON)
* `loading` - boolean флаг, сигнализирующий о том, что загрузка идёт

Покажите использование этого хука на примере трёх компонентов, каждый из которых делает запросы на следующие адреса (backend возьмите из каталога `backend`):
* GET http://localhost:7070/data - успешное получение данных
* GET http://localhost:7070/error - получение 500 ошибки
* GET http://localhost:7070/loading - индикатор загрузки