Один предстоящий технологии, которые представляет собой большой скачок вперед в создании веб-зрелую платформу приложений является веб components1,С точки зрения высокого уровня, веб-компоненты позволят лучше composability, Возможность многократного использования и совместимость элементов интерфейсного веб-приложений, обеспечивая общий способ, чтобы написать компоненты в HTML .
Цель этой статьи, чтобы показать вам, почему это будет такой важный шаг, хвастаясь, что может быть достигнуто прямо сейчас с помощью Polymer2,Полимер в настоящее время является самой передовой и (самопровозглашенный) производство готовых библиотека на основе веб-компонентов .
Что такое полимерная?Link
Давайте это в сторону: “Полимер не рамки.” Команда за это сильно подчеркнул это в этом году / O разговора Google I о выпуске 1.0.Полимер было объявлено на Google I / O 2013 Его цель состоит в предоставлении разработчикам работать с веб-компонент и четыре основного низкого уровня API, —HTML-imports3, тени DOM4, HTML-templates5и пользовательских elements6—Перед стандарты разработаны и внедряются всеми браузере поставщиков .
Это достигается путем предоставления набор polyfillsчто, мол, “fake”новое поведение API, где он еще не реализован в течение последних двух версиях всех основных браузерах.Помимо этих polyfills, полимер также обеспечивает некоторую синтаксический сахар, что делает работу с веб-компонент немного легче .
Один год спустя, проект получил большой толчок в Google I / O 2014, так как команда объявила о своих амбиций, чтобы двигаться вперед полимер, предоставляя обширную библиотеку готовых элементов для разработчиков, на основе Материал Design Guidelines .7Теперь, год спустя, «производство-готов” 1.0 версия Полимер был официально объявил в I / O 2015Keynote .8
Итак, давайте поближе посмотрим на то, что все суета и то, что работа с веб-компонентов и полимерных чувствует, как .
Полимер Компоненты Link
С версии 1.0, команда объявила Полимер различные наборы элемент продукт lines9,Эти многоразовые строительные блоки Прекомпилированные для разработчиков и показать, как веб-компоненты позволят экосистему модульных блоков .
- Утюг elements10Эти коммунальные элементы, которые выполняют основные Оформление печатных и базовую функциональность, без применения каких-либо сложных визуальных стилей .
- Бумага elements11Это реализация веб-компонент материала конструкции, основанной на элементе железа .
- Google веб-components12Эти веб-компоненты обертки для интерфейсов и услуг Google.Например, есть элемент для Google Maps, YouTube и Google Calendar .
- Золото elements13Эти специальные элементы, которые могут быть использованы для электронной коммерции, такие как входные элементы кредитной карты .
- Неоновая elements14Все модные спецэффекты падать под этим лейблом.В настоящее время лишь веб animations15элемент находится в там, который имеет некоторые довольно прохладно demos16.
- Платина elements17Эта категория для компонентов, которые позволяют сложные функциональные возможности веб-приложений, таких как толчок уведомления .
- Molecules18Эти элементы являются оболочками для других библиотек JavaScript .
За этой официального репозитория Polymer, вы должны проверить Пользовательские Elements19, Хранилище даже более элементов.Эти элементы не обязательно на основе полимеров, но все еще совместимые благодаря компонента магии .__ веб 12 |
Пример применения Link
Создать шаблонный Использование Начального комплекта Link
Хватит высокого уровня разговоров и обзоры.Как мы начинаем разработку с полимерным?К счастью, ребята из Google имеет released20аккуратный стартер kit21с версии 1.0 .
Если у вас установлен Node.js, НПМ, Бауэр и Глоток, вы можете запустить следующую команду в каталоге проекта, чтобы установить все зависимости:
npm install -g gulp bower && npm install && bower install
Для получения дополнительной информации о современной JavaScript оснастки, проверить соответствующие страницы на npm22, Bower23и Gulp24.
После установки зависимостей, вы можете запустить набор с Глоток:
gulp serve
Эта команда будет создавать и обслуживать стартовый комплект .
Посмотрите на __62 темы Kit |Link
То, что мы имеем здесь в комплект стартера очень основной костяк приложения с гибкой планировкой, материальной дизайн, функциональность маршрутизации и в автономном режиме кэширования через сервис работников API .
Давайте внимательнее посмотрим на то, что приложение, как это выглядит, как под капотом в веб-компонента земли.Посмотрите на app/index.html
файл.В голове вы можете увидеть, что сценарий включен на странице:
<script src="bower_components/webcomponentsjs/webcomponents-lite.js"></script>
Это компонент polyfill веб-часть полимера, который станет устаревшим в течение долгого времени;Могу ли я использовать списки его текущее state27,На момент написания веб-компоненты поддерживаются изначально 100% в Chrome и Opera, и в настоящее время за флагом в Firefox .
Немного далее вниз по линии, вы найдете эту часть:
<link rel="import" href="elements/elements.html">
Это импорта HTML в действии.Когда вы идете дальше и открыть elements/elements.html
Файл, вы увидите, что все элементы, используемые в теле index.html
ввозятся сюда.Вы также можете непосредственно импортировать их в index.html
, Но исходный файл является немного чище, если вы поместите их в свои собственные .html
подать .
Теперь, давайте посмотрим на реальной разметки приложения .
Структура приложения с веб-компоненты Link
Самое главное, когда, глядя на index.html
Вы увидите много пользовательских элементов, которые используются для разметки приложения.Здесь вы увидите в основном элементы из iron-*
и paper-*
элемент libraries28,Пользовательские элементы должны быть с префиксом это -
обозначения, чтобы избежать столкновения с потенциальными будущими элементами базы HTML .
Вы можете видеть, что полная раскладка страницы состоит из бумаги и железа элементов из библиотеки полимеров:
<paper-drawer-panel>
<!--Responsive sidebar drawer -->
<paper-header-panel>
<!-- Header of the drawer -->
<paper-toolbar>
</paper-toolbar>
<!--Menu in the drawer -->
<paper-menu>
</paper-menu>
</paper-header-panel>
<!--Main content area -->
<paper-header-panel>
<!--Header of the main content -->
<paper-toolbar>
</paper-toolbar>
<!--Main content -->
<iron-pages>
</iron-pages>
</paper-header-panel>
</paper-drawer-panel>
Это показывает очень декларативный и семантический способ структурирования приложение с веб-компонент.Представьте себе, глядя на разметку такого заявления в традиционном веб-приложении;он будет иметь сотни дивы повсюду .
Веб-компоненты, как API, Link
Кроме того, у вас есть пример из platinum-*
элементы, которые обеспечивают более сложные функциональные возможности, такие как содействие новый сервис работник API.Работники сферы услуг являются еще одним новым стандартом API, который позволяет вам создать фоновую службу в браузере, который может обрабатывать кэширование, автономный опыт для вашего веб-приложения и многое другое.Это не связано непосредственно с веб-компонентов, так проверить article__0 HTML5 Rocks ‘|29если вы хотите узнать больше об этом.Точно так же, paper-toast
элемент добавляет функциональность уведомление тост к применению.Это показывает, что веб-компоненты способ может быть использован для захвата более сложную функциональность и интерфейсы .
В целом, разметки приложения показывает очень декларативный способ разметки приложения путем объединения многоразовые элементы.Обратите внимание, что есть не много дополнительного JavaScript или CSS в течение Starter Kit приложение.Большая часть сложного кода красиво воплощен в элементах, которые были выведены в качестве зависимостей .
Привязка данных и маршрутизации Link
Вы, наверное, заметили, что приложение, завернутый в шаблоне HTML тега:
<template is="dom-bind" id="app">
…
</template>
Это делается потому, что полимерная использует шаблоны HTML как контекст (как AngularJS делает с $scope
, например) для привязки данных .30Оператор is="dom-bind"
показывает is
атрибут, который представляет собой способ объявить, что элемент является элементом пользовательского типа, представленной в качестве значения, в то же время наследования от тега он находится на.Таким образом, этот шаблон тег получает лечение, как dom-bind
элемент, который является обычай элемент обеспечивается полимер, который в настоящее время наследует от template
Элемент он был помещен на.Оператор dom-bind
элементом здесь включается обязательных возможностей полимера в template
пометить он был помещен на .
AngularJS разработчики, вероятно, заметили this31на первый взгляд: приложение держится с помощью привязки данных с синтаксисом усы.Связь между paper-menu
элемент и iron-pages
элемент является прекрасным примером того, что может быть сделано с этим в мире веб-компонента .
Оператор paper-menu
элемент, к …
Если вы хотите прочитать полностью статью, посетите сайт наших спонсоров