Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Применение системы модулей на практике↑ ⇐ ПредыдущаяСтр 5 из 5 Содержание книги Поиск на нашем сайте
Напишем часть нашего приложения с применением системы модулей 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; просмотров: 56; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.191.63.237 (0.009 с.) |