Видео-демка
Vue CLI
for installationVue3
(SFC Components)Vuex
for storageESlint
for lintingSCSS
for 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