- Установка требуемых пакетов:
npm i; - Сборка версии разработки, запуск сервера и открытие сайта в браузере:
npm run serve; - Сборка версии разработки:
npm run dev; - Сборка итоговой версии:
npm run build; - Деплой проекта на GitHub:
npm run deploy.
- установить библиотеку свайпера
npm i swiper; - добавить библиотеку компонента
Slider(src/js/components/slider); - создать DOM-структуру свайпера и слайдера (с соответствующими наименованиями классов) - см. элемент
panelMainProjects.js; - после обновления содержимого страницы запустить скрипты синхронизации свайпера и слайдера
startSwiperSliderSynchro().
Порядок установки:
-
обязательно требуется установка плагина
redom; -
исходники -
js/components/button, включающие файлы скриптаbutton.jsи стилей SASSbutton.sass; -
параметры создания объекта кнопки включают:
id- уникальный ключ создаваемого DOM-элемента (на уникальность не проверяется, т.к. подразумевается, что DOM-дерево еще не загружено);classNames- массив имен классов, которые следует приписать DOM-элементу, по умолчанию пустой[];type- тип создаваемой кнопки, по умолчаниюbutton;caption- текстовое содержание кнопки при наличии;svg- путь к svg-иконке при наличии (берется изiconPath, получаемый черезimport iconPath from './iconName.svg');callbackClick- обработчик нажатия на кнопку (по умолчанию html-код созданного DOM-элемента выводится в консоль);
-
конструктор объекта возвращает созданный DOM-элемент для последующего добавления его в дерево;
-
пример создания кнопки для отправки сообщения:
import Button from '../components/Button/button'; import icon from '../icons/icon.svg'; const btn = new Button({ id: '#send-message-btn', classNames: ['btn', 'messages__btn'], type: 'submit', caption: 'Отправить сообщение', svg: icon, callbackClick: sendMessage, });
-
важные замечания:
-
стили компоненты подключаются непосредственно по технологии CSS-in-JS, поэтому эти стили будут заведомо приоритетными по отношению к стилям, добавленным через main.sass;
-
чтобы не использовать
!importantдля кастомизации встроенных стилей кнопки, требуется указывать составные стили для классов, назначаемых кнопке через параметрclassNames, например:-
через стандартный тег кнопки:
button.btn {} button.messages__btn {}
-
через класс компоненты, заданный по умолчанию:
.button.btn {} .button.messages__btn {}
-
с использованием стандартного кастомного класса кнопки для приложения (в примере из п.4 это класс
.btn) -- передавать в спискеclassNamesкомбинацию классов, первым из которых будет стандартный класс, а остальными конкректные классы для текущего контекста выполнения:.btn.messages__btn {}
-
-
можно упростить предыдущий способ, отредактировав файл
button.js, убрав из него импорт стилейbutton.sass- вместо этого стили нужно добавить в основной файл со стилямиmain.sass, и тогда проблема с составными стилями аннулируется:@import './js/components/Button/button.sass';
-