Book description
Mit diesem Buch lernen Sie komponentenbasierteWebanwendungsentwicklung auf Basis von Web Components mittels deklarativer Elemente, die sich leicht zu Anwendungenzusammensetzen lassen. Dadurch erhalten Sie nicht nur Kenntnisse der zugrundeliegenden Web-Components-Technologien, sondern aucheine praktische Einführung in die Verwendung von Web Components mittels Polymer.Zunächst skizziert Martin Splitt die Probleme der klassischen Webentwicklung, gibt eine kurze Einführung in die Verwendung der Web-Components-Standards (Template-Element, Shadow DOM, Custom-Elements und HTML-Imports) und erläutert, wie diese die gezeigten Probleme lösen und ein solides Konzept für Webentwicklungdarstellen.Danach stellt er Polymer als weitergehende Vereinfachung für den Einsatz dieser Technologien vor. Der Einstieg beginnt mit der Weltsichtvon Polymer (»Alles ist ein Element«), wobei anhand eines Beispiels die Vorzüge von Polymer gegenüber reinen Standard-Web-Componentsdemonstriert werden. Anschließend führt Sie der Autor mit der Erstellung einer einfachen Anwendung, die alle wichtigen Grundlagen der Entwicklung von Polymer-Anwendungen beinhaltet und erläutert, in die Arbeit mit Polymer ein.Des Weiteren erfahren Sie, wie man Komponenten – seien es eigene oder extern bereitgestellte – miteinander kombiniert und durch DataBinding verbindet, und lernen abschließend, Komponenten wiederverwendbar zu gestalten und Anwendungen mit Themes anpassbar zu machen.Nach der Lektüre dieses Buches sind Sie in der Lage, vollständige Webanwendungen in Polymer zu realisieren – mit eigenen und fremdenKomponenten.Voraussetzung ist das Verständnis von:• HTML• JavaScript• CSS
Table of contents
- Cover
- Titel
- Impressum
- Inhaltsverzeichnis
- 1 Vorwort
-
2 Einführung in Web Components
- 2.1 Von Dokumenten zu Anwendungen: neue Ansätze für neue Anforderungen im Web
- 2.2 Web-Component-Standards im Überblick
- 2.2.1 Template-Element
- 2.2.2 Shadow DOM
- 2.2.3 Custom-Elements
- 2.2.4 HTML-Imports
- 2.3 Templating
- 2.3.1 Konventionelle Templating-Systeme
- 2.3.2 Das Template-Element
- 2.3.3 Performance von Templates
- 2.4 CSS für Komponenten
- 2.4.1 Isolierte Styles dank Shadow DOM
- 2.4.2 Eingefügte Inhalte, Shadow und CSS
- 2.5 Eigene Tags für Komponenten
- 2.5.1 Bisherige Ansätze
- 2.5.2 Custom Elements
- 2.5.3 Das <content>-Element
- 2.5.4 Auf eingebettete Inhalte zugreifen mit getDistributedNodes
- 2.5.5 Auf Elemente innerhalb von <content> zugreifen
- 2.5.6 Eigene Attribute und Methoden
- 2.5.7 Existierende HTML-Elemente erweitern
- 2.6 Komponenten wiederverwenden
- 2.6.1 Anwendungsdokument und Komponentendokument
- 2.7 Ein Grundgerüst für eigene Komponenten
-
3 Entwickeln mit Web Components
- 3.1 »Hallo Web Components!« – Ein erstes Beispiel
- 3.2 Der Anwendungsentwurf
- 3.3 Die Anwendungslogik
- 3.3.1 Aufbau und Gliederung der Benutzeroberfläche
- 3.3.2 Aufgabenliste
- 3.3.3 Notizen
- 3.3.4 Implementierung
- 3.4 Komponenten für unsere Anwendung
- 3.4.1 Testen unserer Komponenten
- 3.4.2 Das Testsystem
- 3.5 Das todo-item
- 3.5.1 Tests
- 3.5.2 Implementierung
- 3.6 Link-List
- 3.7 Tab-Komponente
- 3.8 Fazit
-
4 Polymer-Grundlagen
- 4.1 Aufbau einer Polymer-Anwendung
- 4.1.1 Das Polymer-Framework
- 4.1.2 Die Polymer-Polyfills: webcomponents.js
- 4.1.3 Eigene Elemente, fremde Elemente und Pages
- 4.2 Polymer-Elemente registrieren
- 4.2.1 Hallo-Polymer
- 4.2.2 Lifecycle-Callbacks
- 4.3 Local DOM und Light DOM
- 4.4 Properties als Element-API
- 4.4.1 Attribute, Properties und Eigenschaften
- 4.4.2 Namensgebung
- 4.4.3 Datentypen
- 4.5 Data-Binding
- 4.5.1 Was ist Data-Binding?
- 4.5.2 Bidirektionale Bindings
- 4.6 Events in Polymer-Elementen
- 4.6.1 Event-Behandlung in Polymer
- 4.6.2 Dynamische Listener
- 4.6.3 Eigene Events definieren
- 4.6.4 Gesten in Polymer
- 4.6.5 Die track-Geste
- 4.6.6 Events und das Shadow DOM
- 4.6.7 Event-Retargeting und Shady DOM
- 4.7 Styling und Theming in Polymer-Elementen
- 4.7.1 Besonderheiten von CSS für Shady DOM
- 4.7.2 CSS-Custom-Properties und Mixins
- 4.7.3 Styles dynamisch ändern und abrufen
- 4.7.4 Einschränkungen des Polyfills
- 4.7.5 Styles und Custom-CSS-Properties auf Dokumentenebene
- 4.7.6 Styles wiederverwenden mit Style Modules
- 4.7.7 Zusätzliche Bibliotheken, Polymer-Elemente und CSS
-
5 Fortgeschrittene Techniken in Polymer
- 5.1 Besonderheiten der Polyfills
- 5.1.1 Eigenschaften des Polyfills-Custom-Elements
- 5.1.2 Eigenschaften des Polyfills-HTML-Imports
- 5.1.3 Eigenschaften des Polyfills Shadow DOM (»Shady DOM«)
- 5.1.4 Shady DOM als Polyfill-Alternative
- 5.2 Globale Einstellungen
- 5.2.1 Shadow oder Shady DOM wählen
- 5.2.2 Verzögerte Registrierung mit lazyRegister
- 5.3 Das Local DOM und die Polymer-DOM-API
- 5.3.1 Light DOM und Distributed Children
- 5.3.2 Effektive Kindelemente
- 5.3.3 Observer im Local DOM
- 5.4 Properties im Detail
- 5.4.1 Die Datentypen Boolean, Object und Array
- 5.4.2 Properties und Konstruktoren
- 5.4.3 Properties vom Typ Object und Standardwerte
- 5.4.4 Properties und Attribute synchronisieren
- 5.4.5 Properties vor Änderung schützen
- 5.4.6 Abgeleitete Properties
- 5.4.7 Property-Änderungen behandeln mit Observern
- 5.4.8 Zusammengesetzte Observer
- 5.4.9 Komplexe Observer und komplexe zusammengesetzte Properties
- 5.5 Data-Binding
- 5.5.1 Property- und Attribut-Bindings im Detail
- 5.5.2 HTML in Text-Bindings
- 5.5.3 Uni- und bidirektionale Bindings
- 5.5.4 Fortgeschrittenes Data-Binding
- 5.5.5 Computed Bindings
- 5.5.6 Data-Binding für native Elemente
- 5.5.7 Data-Binding-Helfer
- 5.6 Elemente erweitern mit Behaviors
- 5.6.1 Zweck und Umfang von Behaviors
- 5.6.2 Ein Beispiel: JsonApiClientBehavior
- 5.6.3 Reihenfolge von Behaviors und Callbacks
- 5.6.4 Behaviors erweitern
- 5.6.5 Namespacing
- 5.6.6 Behaviors und einmalige Aktionen
-
6 Testen von Polymer-Komponenten
- 6.1 Die Grenzen von QUnit
- 6.2 Der Web Components Tester
- 6.3 WCT mit einem beliebigen Webserver
- 6.4 WCT als Kommandozeilen-Werkzeug
- 6.5 Tests mit WCT
- 6.5.1 Assertions und Expectations
- 6.5.2 Fixtures
- 6.5.3 Asynchrone Tests
- 6.5.4 Stubs
- 6.5.5 Integrationstests
- 6.6 Die iron-test-helpers
- 6.6.1 MockInteractions
- 6.6.2 Weitere Test-Helfer
- 6.7 Mehrere Test-Suites
- 6.8 Testen gegen Shady DOM und Shadow DOM
- 6.9 Barrierefreiheit testen mit der a11y-suite
-
7 Eine Polymer-Anwendung von A bis Z
- 7.1 Anwendungsentwurf
- 7.1.1 Aufbau der Anwendung
- 7.1.2 Suchfunktion
- 7.1.3 Filmdetails
- 7.1.4 Favoriten
- 7.1.5 Merkliste
- 7.1.6 Archiv
- 7.2 Projektstruktur
- 7.3 Die Abhängigkeiten vorbereiten
- 7.4 Das Anwendungsdokument
- 7.4.1 Das Grundgerüst
- 7.4.2 Struktur und Layout
- 7.4.3 Das vorläufige Anwendungsdokument
- 7.5 Routing und Pages
- 7.5.1 Routing-Grundlagen: Fragment-URLs und History API
- 7.5.2 Routing in Polymer mit dem App-Router
- 7.6 Die Elemente für unsere Anwendung
- 7.6.1 Die Datenschicht
- 7.6.2 Die Ergebniskachel
- 7.6.3 Die sortierbare Tabelle
- 7.6.4 Die sortierbare Liste
- 7.7 Die Pages für unsere Anwendung
- 7.7.1 Suche
- 7.7.2 Filmdetails
- 7.7.3 Favoriten
- 7.7.4 Merkliste
- 7.7.5 Archiv
- 7.8 Das vollständige Anwendungsdokument
- 7.9 Die Anwendung für den Produktiveinsatz vorbereiten
- A Anhang – Exkurs: Bower
- Schlusswort
- Index
Product information
- Title: Web Components mit Polymer
- Author(s):
- Release date: May 2017
- Publisher(s): dpunkt
- ISBN: 9783864903861
You might also like
video
Full Stack Web Development Mastery Course - Novice to Expert
Full stack development refers to the development of both frontend (client-side) and backend (server-side) portions of …
audiobook
Fall in Love with the Problem, Not the Solution
Unicorns-companies that reach a valuation of more than $1 billion-are rare. Uri Levine has built two. …
audiobook
How to Do Nothing
A galvanizing critique of the forces vying for our attention-and our personal information-that redefines what we …
video
Introduction to ChatGPT and OpenAI
OpenAI ChatGPT is a powerful language model that uses advanced ML techniques to generate human-like text …