Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Polymer - New Era of Web Development

Polymer - New Era of Web Development

Web Components usher in a new era of web development based on encapsulated and interoperable custom elements that extend HTML itself. Built atop these new standards, Polymer makes it easier and faster to create anything from a button to a complete application across desktop, mobile, and beyond.

Alexander Kirillov

December 14, 2014
Tweet

More Decks by Alexander Kirillov

Other Decks in Programming

Transcript

  1. ЧТО ТАКОЕ POLYMER? Elements Core (polymer.js) Foundation (platform.js) Библиотека, которая

    использует
 новейшие веб-технологии
 для создания
 пользовательских HTML элементов
  2. ВСЕ ЕСТЬ ЭЛЕМЕНТ Layout Data View Services/libs <polymer-layout> <polymer-flex-layout> <polymer-grid-layout>

    <polymer-media-query> <polymer-page> <polymer-localstorage> <polymer-xhr> <polymer-jsonp> <polymer-file> <polymer-meta> <your-custom-lib> <google-doc> <google-map> <google-youtube> <google-sheets>
  3. ПОДРОБНЕЕ О ВЕБ-КОМПОНЕНТАХ
 (ШАБЛОНЫ) • Поведение как у привычных шаблонов

    • Контент шаблона инертен (не происходит подгрузки внешних элементов) пока шаблон не активирован • Не возникает краевых эффектов с внешними элементами • Как-бы «не в документе» - селекторы его не возвращают содержимое шаблона
  4. SHADOW DOM … … child child shadow host Document Tree

    Shadow Trees Shadow shadow root chil chil … … … … множество DOM деревьев в пределах родительского
  5. SHADOW DOM • Light DOM • Shadow DOM Light DOM

    + Shadow DOM = Logical DOM (с этим работает разработчик)
  6. SHADOW DOM • Light DOM • Shadow DOM • Composed

    (rendered) DOM Браузер использует Composed DOM для вывода на странице
  7. HTML IMPORTS • Нативные способы доставки ресурсов
 (<script src>, <link

    rel="stylesheet">, <img>, <video>, <audio>) • А если нужно доставить HTML? • <iframe> • AJAX (xhr.responseType = ‘document') • CrazyHacks™ (<script type="text/html">)
  8. HTML IMPORTS • А что с производительностью? • Vulcanize (https://github.com/Polymer/vulcanize)

    • активно используется кэширование браузера • асинхронная загрузка компонентов • импорты не блокируют парсинг • импорты не заставляют компонент «исполняться» сразу
  9. DATA BINDING
 (ТИПЫ СВЯЗЫВАНИЯ) • Binding to text • Binding

    to attributes • Binding to input values
 
 <input>, <select>, <option>, <textarea>
  10. DATA BINDING
 {{ВЫРАЖЕНИЯ}} • Устраняет использование сложной логики в представлениях

    (view) • Выражения не являются скриптом • Не вставляют HTML (позволяют избежать XSS) • Поддерживают вложенность
  11. СТИЛИЗАЦИЯ ЭЛЕМЕНТОВ • Polymer умеет вставлять файлы стилей в элементы

    (нативный Shadow DOM это НЕ умеет)
 
 Разворачивается в
  12. ЧТО ЕСТЬ УЖЕ СЕЙЧАС? • Core Elements • Paper Elements

    (+Material Design) • Community Elements (Github, etc…)
  13. СПАСИБО ЗА ВНИМАНИЕ • https://www.polymer-project.org/ • https://plus.google.com/+PolymerProject • http://customelements.io/ •

    http://habrahabr.ru/post/180377/ Кириллов Александр
 Twitter: @saratovsource LinkedIn: ru.linkedin.com/in/kirillovalexander/