Використовуй цей шаблон React-проекту як стартову точку своєї програми.
- Створений репозиторій
goit-react-hw-07-phonebook - Використана бібліотека
Redux Toolkit
Виконай рефакторинг коду застосунку «Телефонна книга». Видали код, який відповідає за зберігання та читання контактів з локального сховища, та додай роботу з бекендом для зберігання контактів.
Створи бекенд для розробки за допомогою UI-сервісу mockapi.io. Зареєструйся, використовуючи свій обліковий запис GitHub.
Створи ресурс contacts, щоб отримати ендпоінт /contacts. Використовуй
конструктор ресурсу та опиши об'єкт контакту як на ілюстрації.
Використовуй функцію createAsyncThunk або RTK Query для взаємодії з бекендом та асинхронними запитами.
- Створений репозиторій
goit-react-hw-06-phonebook - При здачі домашньої роботи є посилання: на вихідні файли та робочу сторінку
проекту на
GitHub PagesабоNetlify - В Redux-стані зберігається мінімально необхідний набір даних
- Під час запуску коду завдання в консолі відсутні помилки та попередження.
- Для кожного компонента є окрема папка з файлом React-компонента та файлом стилів
- Для компонентів описані
propTypes - Використана бібліотека
Redux Toolkit
Виконай рефакторинг коду застосунку «Книга контактів», додавши управління станом за допомогою бібліотеки Redux Toolkit.
Нехай Redux-стан виглядає наступним чином.
{
contacts: [],
filter: ""
}- Створи сховище з
configureStore() - Використовуй функцію
createSlice() - Створи дії збереження та видалення контакту, а також оновлення фільтра
- Зв'яжи React-компоненти з Redux-логікою за допомогою хуків бібліотеки react-redux.
- Використай бібліотеку Redux Persist для збереження масиву контактів у локальному сховищі
npm install styled-components@5.3.10
import styled from 'styled-components';
npm i react-redux
import { Provider } from 'react-redux'
npm i redux-persist
import { PersistGate } from 'redux-persist/es/integration/react'
npm i @reduxjs/toolkit
- Створений репозиторій
goit-react-hw-04-phonebook. - Проведи рефакторинг коду завдання, використовуючи React-хуки.
Візьми своє рішення завдання з попередньої домашньої роботи і додай зберігання
контактів телефонної книги в localStorage. Використовуй методи життєвого
циклу.
- Під час додавання та видалення контакту контакти зберігаються у локальне сховище.
- Під час завантаження застосунку контакти, якщо такі є, зчитуються з локального сховища і записуються у стан.
Этот проект был создан при помощи Create React App. Для знакомства и настройки дополнительных возможностей обратись к документации.
Используй этот репозиторий организации GoIT как шаблон для создания репозитория
своего проекта. Для этого нажми на кнопку «Use this template» и выбери опцию
«Create a new repository», как показано на изображении.
На следующем шаге откроется страница создания нового репозитория. Заполни поле
его имени, убедись что репозиторий публичный, после чего нажми кнопку
«Create repository from template».
После того как репозиторий будет создан, необходимо перейти в настройки
созданного репозитория на вкладку Settings > Actions > General как
показано на изображении.
Проскролив страницу до самого конца, в секции «Workflow permissions» выбери
опцию «Read and write permissions» и поставь галочку в чекбоксе. Это
необходимо для автоматизации процесса деплоя проекта.
Теперь у тебя есть личный репозиторий проекта, со структурой файлов и папок репозитория-шаблона. Далее работай с ним как с любым другим личным репозиторием, клонируй его себе на компьютер, пиши код, делай коммиты и отправляй их на GitHub.
- Убедись что на компьютере установлена LTS-версия Node.js. Скачай и установи её если необходимо.
- Установи базовые зависимости проекта командой
npm install. - Запусти режим разработки, выполнив команду
npm start. - Перейди в браузере по адресу http://localhost:3000. Эта страница будет автоматически перезагружаться после сохранения изменений в файлах проекта.
Продакшн версия проекта будет автоматически проходить линтинг, собираться и
деплоиться на GitHub Pages, в ветку gh-pages, каждый раз когда обновляется
ветка main. Например, после прямого пуша или принятого пул-реквеста. Для этого
необходимо в файле package.json отредактировать поле homepage, заменив
your_username и your_repo_name на свои, и отправить изменения на GitHub.
"homepage": "https://your_username.github.io/your_repo_name/"Далее необходимо зайти в настройки GitHub-репозитория (Settings > Pages) и
выставить раздачу продакшн версии файлов из папки /root ветки gh-pages, если
это небыло сделано автоматически.
Статус деплоя крайнего коммита отображается иконкой возле его идентификатора.
- Желтый цвет - выполняется сборка и деплой проекта.
- Зеленый цвет - деплой завершился успешно.
- Красный цвет - во время линтинга, сборки или деплоя произошла ошибка.
Более детальную информацию о статусе можно посмотреть кликнув по иконке, и в
выпадающем окне перейти по ссылке Details.
Через какое-то время, обычно пару минут, живую страницу можно будет посмотреть
по адресу указанному в отредактированном свойстве homepage. Например, вот
ссылка на живую версию для этого репозитория
https://goitacademy.github.io/react-homework-template.
Если открывается пустая страница, убедись что во вкладке Console нет ошибок
связанных с неправильными путями к CSS и JS файлам проекта (404). Скорее
всего у тебя неправильное значение свойства homepage в файле package.json.
Если приложение использует библиотеку react-router-dom для маршрутизации,
необходимо дополнительно настроить компонент <BrowserRouter>, передав в пропе
basename точное название твоего репозитория. Слеш в начале строки обязателен.
<BrowserRouter basename="/your_repo_name">
<App />
</BrowserRouter>- После каждого пуша в ветку
mainGitHub-репозитория, запускается специальный скрипт (GitHub Action) из файла.github/workflows/deploy.yml. - Все файлы репозитория копируются на сервер, где проект инициализируется и проходит линтинг и сборку перед деплоем.
- Если все шаги прошли успешно, собранная продакшн версия файлов проекта
отправляется в ветку
gh-pages. В противном случае, в логе выполнения скрипта будет указано в чем проблема.







