Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Применение системы модулей на практикеСодержание книги Поиск на нашем сайте Напишем часть нашего приложения с применением системы модулей ECMAScript на практике. Начнём с калькулятора дат. Она будет предельно простая, чтобы сосредоточиться на особенностях работы с модулями. Итак, у нас два поля для ввода даты (input type="date") и кнопка «рассчитать промежуток». Если пользователь не заполнит одно или оба поля, покажем ошибку. Для расчёта дат воспользуемся сторонней библиотекой работы с датой Luxon. Начнём с вёрстки, файл index.html:
Здесь всё просто и без сюрпризов. На внешний вид вёрстки не отвлекаемся. Теперь напишем основную логику файла src/main.js с выводом данных из формы в консоль. Файл src/main.js:
Важно! По умолчанию модули всегда выполняются только после полной загрузки DOM-дерева, соответственно не блокируют отрисовку вёрстки и позволяют обращаться к DOM-элементам без обработки события DOMContentLoaded. Для начала получаем нужные нам DOM-элементы, устанавливаем обработчик формы и пишем основную логику валидации поля. Теперь заведём функцию, которая отформатирует вывод как ошибку. Её мы поместим в файл src/utils.js. В этом сейчас нет большого смысла, мы делаем это для практики. Файл src/utils.js:
Далее напишем функцию расчёта промежутка между датами. Для этого воспользуемся инструментарием luxon. Так как функция diff возвращает объект, нам также понадобится функция, превращающая его в html. Файл src/datecalc.js:
Разберём помеченные цифрами строчки кода в этом листинге: 1. Загружаем локально сохранённый исходный код luxon. Он находится здесь. 2. Меняем даты, если первая дата больше второй. Это нужно, чтобы не появились цифры с минусами. 3. Функция diffToHtml форматирует объект как html. Она имеет вид стрелочки, чтобы показать разные варианты экспорта. Придерживаемся одинакового синтаксиса объявления функций в проекте. Теперь объединим всё в файле src/main.js:
Разберём помеченные цифрами строчки кода: 1. Импортируем 2 функции из файла src/datecalc.js. 2. Импортируем функцию из файла src/utils.js. 3. Вычитаем промежуток между датами. 4. Форматируем промежуток, как html и вставляем в DOM. 5. Если одно из полей не заполнено (или оба), выводим ошибку. Каждый из файлов исходного кода загружается отдельно:
Приложение считает промежуток:
И выводит ошибку, если одно из полей пустое:
Вот так легко мы воспользовались системой модулей. Однако работает это только в современных браузерах. На следующем уроке мы узнаем, как усовершенствовать этот проект с использованием инструментов сборки кода. Используемые источники 1. Статья «MDN: script defer.» 2. Статья «MDN: Модули JavaScript.» 3. Статья «CommonJS Modules.» 4. Статья «Requirejs documentation.» 5. Статья «UMD (Universal Module Definition).» 6. Статья «Википедия: Асинхронное определение модуля.» Дополнительные материалы 1. Статья «Learn JavaScript, Модули.» 2. Статья «Habr: Эволюция модульного JavaScript.» 3. Статья «Habr: Путь JavaScript модуля.» 4. Статья «Habr: Тонкости модульной системы ECMAScript 2015 (ES6).» 5. Перевод книги Эдди Османи «Паттерны для масштабируемых JavaScript-приложений».
|
|||||||
|
Последнее изменение этой страницы: 2022-01-22; просмотров: 102; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.21 (0.006 с.) |