Видео-демка
Vue CLIfor installationVue3(SFC Components)Vuexfor storageESlintfor lintingSCSSfor stylingGit(withoutgit-flow)
- uiid для уникальных id
- vuex-persist для удобного сохранения выборочных vuex-стейтов в
localStorage
- рендеринг карточек
- удаление карточки
- добавление новой карточки из формы
- фильтрация карточек
- сохранение стейта в
localStorage(via vuex-persist)
Валидация основана на стандартном ValidityState API с кастомными ошибками и паттернами ввода на основе регулярных выражений
- название - обязательное поле
- ссылка на изображение товара - обязательное поле
- цена - обязательное поле
- кнопка добавления товара неактивна пока форма пуста или невалидна
- добавление маски разделения тысячных пробелом для поля цены
Анимации реализованы через Vue3 анимации и стандартные классы.
- анимация перехода состояний в форме
- анимация добавления товара в список
- анимация удаления товара
- анимация сортировки товара
- Добавление прелодера на странице для плавной инициализации списка
- попап состояния удачного добавления товара в форме
Резиновая верстка по макету на scss с глобальными переменными и миксинами.
На разрешении < 1024px блок с формой (сайдбар) получает кнопку скрытия и по умолчанию скрыт. При раскрытии сайдбар "толкает" блок с карточками. На разрешении < 768px при раскрытии сайдбара блок с карточками уходит под сайдбар.
- hover-состояния
- active-состояния
- focused-состояния
- адаптив под мобильные
git clone git@github.com:proehavshiy/vue3-store-app-test.git- clone branchnpm install- install dependenciesnpm run serve- run the project in dev modenpm run build- build final versionnpm run lint- check linter errorssh deploy.sh- deploy to gh-pages
