Рубрики
Без рубрики

Как эффективно развивать приложение Vanilla JavaScript

Сделайте отличное веб-приложение с простой JavaScript и различными инструментами сборки.

Автор оригинала: Vineet Dev.

Почему ванильный JS – простой простой JavaScript

Что касается вашего ума, когда вас просят разработать приложение для интерфейса? Это большой вопрос, потому что мир JS часто меняется, и новые технологии изобретены со скоростью света. Ну, это может быть преувеличением … Но правда в том, что выбор подхода к разработке предельной приложения может быть жестким, так как у нас так много вариантов! Выбор подхода становится еще более важным и требует большей ответственности, если мы просят работать на приложении предприятия. Для любого приложения необходимо убедиться, что разработка легко и масштабируется. Но помните, что он должен идти в изготовление, поэтому он должен быть исполнен и легким.

Когда мы принимаем хорошие рамки, такие как угловые или реагирующие, мы получаем отличный процесс разработки, а также очень исполнительные приложения. Дополнительно, мы также получаем приложения, которые масштабируются хорошо. Но когда-нибудь самое важное для веб-приложения – это быстро загрузить, даже на первой нагрузке. По этой причине мы можем выбрать ваниль/простое js без каких-либо структурных или тяжеловесных библиотек. При принятии решения вы должны рассмотреть эти три фактора:

  • Ремонтопригодность кода
  • Масштабируемость кода
  • Совместимость с последним подходом (то есть с использованием PWA для создания нашего веб-приложения)

Если эти спецификации встречаются, вам будет наслаждаться кодированием, даже если это просто просто JavaScript. Я постараюсь решить некоторые проблемы, которые разработчики могут столкнуться с приложением с простой JavaScript.

Ванильные js – проблемы адресованы

Вот несколько проблем, которые мы хотим решить, когда мы разрабатываем хорошее приложение Vanilla JS:

  • Ремонтопригодность кода
  • Масштабируемость кода
  • Гибкость кода
  • Создание приложений PWA с ванильными JS

Чтобы решить эти проблемы, мы должны структурировать наше приложение так, чтобы:

  • Приложение модульное
  • Приложение использует последние технологии, то есть ES6
  • Приложение не должно слишком много загружаться на браузере (начальная нагрузка должна быть 5 КБ, а команда приложений не должна превышать 50 КБ)
  • Приложение должно быть исполнено

Есть два подхода к моему знанию:

  1. Используйте полимер: полимер – это библиотека, и это не тяжелая структура. Он простым способом сделать веб-компоненты. Стандарт развития полимера полностью следит за рекомендациями PWA. Это дает вам полную свободу выбирать свои собственные библиотеки на такие вещи, как маршрутизация, обещания и т. Д.

  2. Для второго подхода – пожалуйста, прочитайте остальную часть статьи и напишите код с ванильными JS.

Использование Vanilla JS – 2-й подход

Хорошо, давайте прыгнем прямо в технологии, которые необходимы для создания приложения:

  • Отличный инструмент сборки – мой выбор WebPack Отказ
  • То, что позволяет вам написать ES6 – мой выбор Бабел Отказ
  • Некоторая модульная система, чтобы сделать ваше приложение гибким и масштабируемым – мой выбор Модули ES6 Отказ
  • Сделайте дополнительную компиляцию на Enter Server/Build, а не назначать ваш браузер для проведения тяжелых задач – я использую Cabel Compiter с Лоташ Чтобы скомпилировать большую часть моего кода в состав времени. WebPack проводят все и выводит небольшие файлы.
  • Сделайте начальную HTML Small и Lazy загрузить вашу приложение Shell. (Что я подразумеваю под «app Shell» – это файл, который загружает большую часть кода вашего приложения.)
  • Воспользуйтесь минимальным временем для разработки – я использую WebPack Dev Server с Замена горячего модуля характерная черта. Это экономит много времени. Вы также можете использовать плагин WebPack DLL.
  • Попробуйте сделать не менее 3 других файлов JS во время процесса сборки вместо того, чтобы включить все в приложении Shell – я строю Common-Chunks.js , library.js и Polyfill.js Файл вместе с app-shell.js пучок.
  • Всегда используйте механизм разобрания кэша – WebPack предоставляет это.
  • Используйте работников обслуживания – использую модули узлов, предоставленные командой Google Chrome на их странице GitHub.
  • Модульность применима не только для JavaScript, но и нашего HTML и CSS. Я использую EJS Для HTML и SASS для CSS.

Давайте кратко обсудим их один за другим.

Хороший инструмент сборки – используя учебный папак

WebPack – это отличный инструмент сборки для JavaScript. Это обеспечивает почти все, что вы можете захотеть от вашего инструмента сборки. Лучшее, что он читает все как модуль JavaScript. Вы можете найти сотни учебных пособий на WebPack онлайн – вот хороший. Стоит подчеркивать 3 самых важных вещей в WebPack:

  • Функция ввода/вывода: Вход означает, что ваши точки входа и вывод означает ваш файл сборки.
  • Погрузчики: Погрузчики используются для создания модулей Non JS в модули JS.
  • Плагины: Плагины разбирают весь JavaScript одновременно.

Другие инструменты сборки могут быть глотали, ворчание или брокколи. Конечно, вы также можете написать свои собственные модули узлов для этой цели (единственная проблема – это проводка всех ваших задач и процессов сборки). Если нет WebPack, мой второй выбор будет глотать.

ES6 – с помощью бабела

Каждое сообщество JavaScript имеет горячие темы, окружающие функции ES6/ES2015. Все любят это. Единственная проблема заключается в том, что браузеры недостаточно быстро, чтобы принять его. Эта проблема может быть решена в хорошем компилятере ES6. Лучший из них есть Бабел. Он обеспечивает много особенностей. Существует также Babel-погрузчик, который компилирует весь ваш код ES6 в код ES5 через WebPack.

Для интерпретации Runtime ES6 вы можете использовать Babel-Polyfill, Core.js или Babel-Runtime во время сборки для модульных целей.

Другой вариант – Traceur, который выполняется только в браузере во время выполнения. Мне это очень не нравится по той же причине.

Хорошая альтернатива будет TeampScript + Core.js. Тем не менее, вам придется сначала изучать Typescript, что является еще одним накладным расходом.

Модули для JavaScript

Есть много разных модулей, которые вы можете разрабатывать для файлов JavaScript. Некоторые существующие модульные системы включают Commonjs, AMD и UMD. UMD – это сочетание Commonjs и AMD; Поэтому лучше всего сделать ваши файлы JS в качестве модулей UMD. Имейте в виду, что запись модуля UMD – это сложное и время, принимая задачу. WebPack может решить эту проблему!

Это означает, что я не должен писать что-нибудь, чтобы сделать это модульным? Нет, это не то, что я имел в виду. Любой файл JS в WebPack – это модуль, в основном модуль UMD, но вы можете указать экспорт любого файла. Я следую подход модуля ES6 Module, потому что он очень прост.

Чтобы экспортировать переменную из файла ‘foo.js’, напишите:

export var myFoo = function(greeting) {
  return `${greeting} to Foo`;
}

Использовать его внутри bar.js Файл, напишите:

import {myFoo} from './foo.js'
console.log(myFoo("Welcome")); //output will be - "Welcome to Foo"

Сделать больше компиляции в созданном времени

WebPack, с его погрузчиками и плагинами предоставит вам все инструменты для составления встроенного времени.

Некоторые из моих любимых плагинов: Commonschunkplugin , Htmlwebpackplugin , ExtractextPlugin , так далее.

Вот несколько очень полезных погрузчиков: HTML-погрузчик , Стиль-погрузчик , CSS-Loader , Sass-Loader , EJS-Loader , мопс-погрузчик , Babel-Loader , файловой погрузчик , URL-погрузчик , так далее.

Сделайте начальную HTML Small и Lazy загрузить вашу приложение Shell

Напишите меньше в своем первоначальном HTML и Lazyload остальное ваше приложение. Нужно всем, может варьироваться, в зависимости от такого применения он/она строит. Попробуйте следовать подходу PWA, несмотря ни на что.

Занять меньше времени для развития

Используйте выдающиеся сервер разработки и используйте MOCK DATA для разработки. Я использую WebPack-Dev-Server Для загрузки моего развития окружающей среды. Он живут браузер RoasteS, и он может ограничить модуль, который он впрыскивает те, которые были изменены или обновлены в среде разработки.

Попробуйте использовать ‘process.env.node_env’ Переменная Как вы можете отличить дифференцировать между тем, что необходимо продемонстрировать во время развития, и что должно быть включено в производственную сборку.

Использовать Модуль HMR WebPackack Если вы используете WebPack, чтобы быстро ввести ваши изменения в вашем браузере во время разработки.

Кроме того, используйте некоторые Mock Data Server, чтобы издеваться от фактических сервисов Backend. Для этого я использую JSON-Server с JSON DB и Marals.json file Отказ

Хорошая замена для WebPack-Dev-Server может быть lite-сервер , который доступен в виде модуля NPM и включает в себя синхронизацию браузера для объекта Live Reload.

Используйте сервисные работники

Я использую работников службы в основном, чтобы сделать мое приложение офлайн. Однако есть много других случаев использования работников обслуживания. Пожалуйста, прочитайте это Статья Google Developer для дополнительной информации.

Пожалуйста, используйте Этот модуль узла для создания вашего приложения в автономном режиме.

Модульность для HTML и CSS

Я охвачу два важных аспекта развития HTML и CSS: сделать их модульными и сделать их программируемыми.

Когда я говорю, что я хочу сделать что-то программируемо, это означает, что я хочу, чтобы я мог применить логику, делать расчеты, использовать переменные, сделать его настраиваемыми и т. Д.

  • Для CSS Я выбираю Sass. Это делает вещи модульными и настраиваемыми. Вы можете объявить переменные и писать условия, смешивания и функции. Обязательно установите Node-Sass и Sass-Loader для WebPack, чтобы использовать файлы SCSS.

    Альтернативы SASS включают меньше и стилус.

  • Для HTML Я использую EJS. Основная причина в том, что я могу использовать EJS наряду с моим нормальным HTML очень легко. Мне не нужно менять свой обычный HTML, и я все еще могу интегрировать в него EJ. Кроме того, EJS может быть скомпилирован по времени сборки, и он также может интерпретировать во время выполнения. Используя обычные варибалы JS с помощью интерполяции (как ES6, так и EJS Way) действительно просто, когда у вас есть проект WebPack-Babel.

    С EJS я могу сделать мои файлы EJS (файлы просмотра) по-настоящему модульные и пропускать переменные, которые можно использовать внутри шаблона. Изготовление модульных HTML (Views) предоставляет нам отличный способ разработки приложения на основе компонентов в проекте Vanilly JavaScript.

    Другие варианты включают нефть/мопс, руль, HAML и т. Д.

Время использовать эти концепции

Это ребята, я надеюсь, вам понравилась эта статья. Я пытался сохранить его как Compact и как можно просто. Надеюсь, это было полезно. Пожалуйста, не стесняйтесь написать свое собственное приложение JS, используя эту статью в качестве руководства – я уверен, что вы получите это очень скоро! Также, пожалуйста, прокомментируйте и поделитесь своим мнением.

Спасибо за прочтение.

Я всегда доступен на кода-кода! Пожалуйста, не стесняйтесь добраться до меня, если у вас есть какие-либо вопросы!