Небольшой сервис со списком стран c поиском и фильтрацией. Также есть возможность выбора темы (светлой или темной).
npx create-react-app . (установит в текущую папку)
Axios – это библиотека с открытым исходным кодом, позволяющая делать HTTP-запросы
- npm i styled-components
- npm i react-router-dom
- npm i axios
https://www.frontendmentor.io/
npm i react-icons
- по заданию нужно использовать иконки Ionicons 5. сайт с иконками: https://react-icons.github.io/react-icons/icons?name=io5
- форма состоит из двух елементов поиска и селекта
- установим реакт селект
- для формы создадим три компонента (controls для контроля, search для поиска, customSelect)
Установка реакт селект https://react-select.com/home
npm i --save react-select
- чтобы работал роутинг нужно все приложение обернуть в BrowserRouter после чего в самом App может задавать роуты
- Создаем три страницы
- для главной страници заведем стейт с фильтрованными странами
- инфо будем получать по новой ссылке из конйига, поэтому нужен аксиос.
- для стейта карточки детали импортируем юзстейт и юзэффект
- импортируем функцию получения дет. инфо из конфиг
- для иконки (стрелка назад) мипортируем реакт айконс, также импортируем useNavigate
- добавлеем поле в корневой объект файла package.json "homepage": "https://maximmorenko.github.io/spa-countries-project";
- добавлеем в поле 'script' корневого объекта в файле package.json "predeploy": "npm run build", "deploy": "gh-pages -d build"
- Для того чтобы роутинг работал мы должны у компонента BrowserRouter добавить атрибут baseName='' и указать ему значение (путь нашей главной страницы) /spa-countries-project
- если есть ключи то переносим их с енв локал на гитхаб в секреты (настройки проекта => новый секрет)
- устанавливаем npm install gh-pages -D (-D это то же самое что и --save-dev)
- сохраняем изменения git add -A
- запускаем диплой npm run deploy