Оглавление
- Описание проекта
- Стек технологий
- Установка и запуск проекта в локальном репозитории
- Процесс создания
Ссылка на макеты:
https://www.figma.com/file/2cn9N9jSkmxD84oJik7xL7/JavaScript.-Sprint-4?node-id=0%3A1
https://www.figma.com/file/bjyvbKKJN2naO0ucURl2Z0/JavaScript.-Sprint-5?node-id=0%3A1
https://www.figma.com/file/kRVLKwYG3d1HGLvh7JFWRT/JavaScript.-Sprint-6?node-id=0%3A1
https://www.figma.com/file/PSdQFRHoxXJFs2FH8IXViF/JavaScript-9-sprint?node-id=0%3A1
Ссылка на проект: https://elrouss.github.io/mesto/
* - проект прошел код-ревью
git clone https://elrouss.github.io/mesto.git
- клонировать репозиторий (с использованием HTTPS) на свое устройствоnpm i
- установить зависимостиnpm run dev
- запустить приложение в режиме разработчика (в браузере ввести ссылкуhttp://localhost:8080/
, если приложение не открылось там автоматически)
- Верстка, реализация открытия и закрытия модального окна с возможностью редактирования данных профиля
- Интерактивные элементы страницы: добавление и удаление карточки, лайки, открытие фотографии карточки в отдельном модальном окне, плавное открытие и закрытие попапов
- Валидация форм, закрытие модальных кликом по оверлею и нажатием на клавишу "Escape"
- Начало рефакторинга (переход к классам): добавление компонентов Card и FormValidator, разбиение на модули, директивы import & export
- Завершение рефакторинга: структуризация проекта, переписывание функций под 5 новых классов (Section, Popup, PopupWithImage, PopupWithForm, UserInfo), сборка проекта Вебпаком
- Подключение к серверу: загрузка информации о пользователе, обновление аватара, загрузка карточек (добавление и удаление), счетчик лайков, улучшение UX всех форм
Самой трудной частью этого проекта был переход от функционального подхода к классовому: это потребовало прочтения большого количества как основного учебного материала, так и дополнительного. В отдельных случаях терялся контекст (this): проблема решалась использованием стрелочных функций. Кроме того, следовало постоянно отслеживать навешивание и снятие (!) обработчиков событий, в противном случае возникали ошибки (одна из - создание одновременно нескольких карточек при сабмите формы)
- Оптимизировать страницу для людей с ограниченными возможностями (напр., label для инпутов форм)
- Реализовать периодическое автоматическое обновление фотогалереи (без блика)
- Сделать сабмит форм нажатием на клавишу "Enter" (в настоящий момент работает только в случае клика пользоватем по полю формы)
- Запретить передачу пустых строк в полях форм