Upload
others
View
9
Download
0
Embed Size (px)
Citation preview
03/06/2019 reveal.js
localhost:8000/?print-pdf 1/86
ANGULAR VS REACTANGULAR VS REACTDavid DerichsMohamed HaridyCatherine Mamani VallesOskar Schachtschneider
03/06/2019 reveal.js
localhost:8000/?print-pdf 2/86
INHALTSVERZEICHNISINHALTSVERZEICHNISSingle Page ApplicationAngularReactUnterschiede zwischen Angular & ReactLive CodingFazit
03/06/2019 reveal.js
localhost:8000/?print-pdf 3/86
SINGLE PAGE APPLICATIONSINGLE PAGE APPLICATION
03/06/2019 reveal.js
localhost:8000/?print-pdf 4/86
SINGLE PAGE APPLICATIONSINGLE PAGE APPLICATIONServer liefert eine HTML aus
03/06/2019 reveal.js
localhost:8000/?print-pdf 5/86
SINGLE PAGE APPLICATIONSINGLE PAGE APPLICATIONServer liefert eine HTML aus
DOM wird jeweils aktualisiert
03/06/2019 reveal.js
localhost:8000/?print-pdf 6/86
SINGLE PAGE APPLICATIONSINGLE PAGE APPLICATIONServer liefert eine HTML aus
DOM wird jeweils aktualisiert
keine Verbindungsprobleme
03/06/2019 reveal.js
localhost:8000/?print-pdf 7/86
SINGLE PAGE APPLICATIONSINGLE PAGE APPLICATIONOffline-friendly
Bessere Userexperience
03/06/2019 reveal.js
localhost:8000/?print-pdf 8/86
VIELE UNTERNEHMEN BENUTZEN DIESEVIELE UNTERNEHMEN BENUTZEN DIESEGoogle
AmazonFacebookMicroso�
03/06/2019 reveal.js
localhost:8000/?print-pdf 9/86
ANGULARANGULAR
03/06/2019 reveal.js
localhost:8000/?print-pdf 10/86
KEY FACTSKEY FACTS
03/06/2019 reveal.js
localhost:8000/?print-pdf 11/86
KEY FACTSKEY FACTSWeb-Frontend Framework
03/06/2019 reveal.js
localhost:8000/?print-pdf 12/86
KEY FACTSKEY FACTSWeb-Frontend Framework
MVC
03/06/2019 reveal.js
localhost:8000/?print-pdf 13/86
KEY FACTSKEY FACTSWeb-Frontend Framework
MVC
Open Source - MIT Licence
03/06/2019 reveal.js
localhost:8000/?print-pdf 14/86
KEY FACTSKEY FACTSWeb-Frontend Framework
MVC
Open Source - MIT Licence
Angeführt von Google
03/06/2019 reveal.js
localhost:8000/?print-pdf 15/86
KEY FACTSKEY FACTSWeb-Frontend Framework
MVC
Open Source - MIT Licence
Angeführt von Google
TypeScript (Klassen, Typen, Schleifen ...)
03/06/2019 reveal.js
localhost:8000/?print-pdf 16/86
RELEVANZRELEVANZ
03/06/2019 reveal.js
localhost:8000/?print-pdf 17/86
USPUSP
03/06/2019 reveal.js
localhost:8000/?print-pdf 18/86
USPUSPPlatformen (Web, Mobile, Desktop)
03/06/2019 reveal.js
localhost:8000/?print-pdf 19/86
USPUSPPlatformen (Web, Mobile, Desktop)
Performance durch RxJS
03/06/2019 reveal.js
localhost:8000/?print-pdf 20/86
USPUSPPlatformen (Web, Mobile, Desktop)
Performance durch RxJS
Templating
03/06/2019 reveal.js
localhost:8000/?print-pdf 21/86
USPUSPPlatformen (Web, Mobile, Desktop)
Performance durch RxJS
Templating
Dependency & Package Management
03/06/2019 reveal.js
localhost:8000/?print-pdf 22/86
EVENT BINDINGEVENT BINDING <button (click)="onClickMe()">Click me!</button> @Component({ selector: 'app-click-me', template: ` <button (click)="onClickMe()">Click me!</button> {{clickMessage}}` }) export class ClickMeComponent { clickMessage = ''; onClickMe() { this.clickMessage = 'You are my hero!'; } }
03/06/2019 reveal.js
localhost:8000/?print-pdf 23/86
DATA BINDINGSDATA BINDINGS <element [ngclass]="{'aktiv': this.data.aktiv }">...</element> <button (click)="toggle()"></button> <element" *ngif="data.aktiv"> {{ beispieltext }} </element"> export class AppComponent { data = { aktiv: true; } text = 'beispieltext'; toggle(){ this.data.aktiv = false; } }
03/06/2019 reveal.js
localhost:8000/?print-pdf 24/86
SCHLEIFENSCHLEIFEN <li *ngfor="let movie of movies"> {{ movie }} </li> export class AppComponent { movies = ['Captain America', 'Iron Man', 'Hulk']; singleMovie = this.movies[0]; }
03/06/2019 reveal.js
localhost:8000/?print-pdf 25/86
REACTREACT
03/06/2019 reveal.js
localhost:8000/?print-pdf 26/86
WAS IST REACTWAS IST REACT
03/06/2019 reveal.js
localhost:8000/?print-pdf 27/86
WAS IST REACTWAS IST REACTUI Javascript Framework
03/06/2019 reveal.js
localhost:8000/?print-pdf 28/86
WAS IST REACTWAS IST REACTUI Javascript Framework
V in MVC
03/06/2019 reveal.js
localhost:8000/?print-pdf 29/86
WAS IST REACTWAS IST REACTUI Javascript Framework
V in MVC
SINGLE PAGE APPLICATION (SPA)
03/06/2019 reveal.js
localhost:8000/?print-pdf 30/86
WAS IST REACTWAS IST REACTUI Javascript Framework
V in MVC
SINGLE PAGE APPLICATION (SPA)
Entwickelt von facebook 2011
03/06/2019 reveal.js
localhost:8000/?print-pdf 31/86
WAS IST REACTWAS IST REACTUI Javascript Framework
V in MVC
SINGLE PAGE APPLICATION (SPA)
Entwickelt von facebook 2011
Apache License 2.0 2013
03/06/2019 reveal.js
localhost:8000/?print-pdf 32/86
WAS IST REACTWAS IST REACTUI Javascript Framework
V in MVC
SINGLE PAGE APPLICATION (SPA)
Entwickelt von facebook 2011
Apache License 2.0 2013
MIT license 2017
03/06/2019 reveal.js
localhost:8000/?print-pdf 33/86
BRAUCHE ICH REACT�BRAUCHE ICH REACT�
03/06/2019 reveal.js
localhost:8000/?print-pdf 34/86
WER BENUTZT REACTWER BENUTZT REACT
03/06/2019 reveal.js
localhost:8000/?print-pdf 35/86
WER BENUTZT REACTWER BENUTZT REACT
03/06/2019 reveal.js
localhost:8000/?print-pdf 36/86
WER BENUTZT REACTWER BENUTZT REACT
03/06/2019 reveal.js
localhost:8000/?print-pdf 37/86
WER BENUTZT REACTWER BENUTZT REACT
03/06/2019 reveal.js
localhost:8000/?print-pdf 38/86
WER BENUTZT REACTWER BENUTZT REACT
03/06/2019 reveal.js
localhost:8000/?print-pdf 39/86
WER BENUTZT REACTWER BENUTZT REACT
03/06/2019 reveal.js
localhost:8000/?print-pdf 40/86
WER BENUTZT REACTWER BENUTZT REACT
03/06/2019 reveal.js
localhost:8000/?print-pdf 41/86
WER BENUTZT REACTWER BENUTZT REACT
03/06/2019 reveal.js
localhost:8000/?print-pdf 42/86
WER BENUTZT REACTWER BENUTZT REACT
03/06/2019 reveal.js
localhost:8000/?print-pdf 43/86
WER BENUTZT REACTWER BENUTZT REACT
03/06/2019 reveal.js
localhost:8000/?print-pdf 44/86
WER BENUTZT REACTWER BENUTZT REACT
03/06/2019 reveal.js
localhost:8000/?print-pdf 45/86
WER BENUTZT REACTWER BENUTZT REACT
03/06/2019 reveal.js
localhost:8000/?print-pdf 46/86
USPUSP
03/06/2019 reveal.js
localhost:8000/?print-pdf 47/86
USPUSPComponents
03/06/2019 reveal.js
localhost:8000/?print-pdf 48/86
USPUSPComponents
JSX
03/06/2019 reveal.js
localhost:8000/?print-pdf 49/86
USPUSPComponents
JSX
virtual DOM
03/06/2019 reveal.js
localhost:8000/?print-pdf 50/86
VIRTUAL DOMVIRTUAL DOM
03/06/2019 reveal.js
localhost:8000/?print-pdf 51/86
EVENT BINDINGEVENT BINDING <button onclick="{this.handclick}">Clik me!</button> handleclick = (num) => {console.log(num)}
03/06/2019 reveal.js
localhost:8000/?print-pdf 52/86
DATA BINDINGDATA BINDING state = { defaultNumber: 1, selectedCounter: 0 } {this.setState({ selectedNumber: 5 })}
03/06/2019 reveal.js
localhost:8000/?print-pdf 53/86
SCHLEIFENSCHLEIFEN let list = [1, 2, 3, 4, 5, 6] list.map((number) => { console.log(number) return ( <react.fragment> <button onclick="{this.handleclick}">Click me!</button> {this.setState({ selectedNumber: 5 })} <div> {number}</div> </react.fragment> ) })
03/06/2019 reveal.js
localhost:8000/?print-pdf 54/86
UNTERSCHIEDEUNTERSCHIEDEANGULAR & REACTANGULAR & REACT
03/06/2019 reveal.js
localhost:8000/?print-pdf 55/86
Philosophie
Zielgruppe
03/06/2019 reveal.js
localhost:8000/?print-pdf 56/86
PHILOSOPHIEPHILOSOPHIE
Angular React
Framework Library
erweitertete HTMLversion
JSX, eine XML-artigeSprache
03/06/2019 reveal.js
localhost:8000/?print-pdf 57/86
ZIELGRUPPEZIELGRUPPEAngular React
Enterprise Orientiert Web Entwickler Orientiert
03/06/2019 reveal.js
localhost:8000/?print-pdf 58/86
Angular React
Skalierte BusinessAnwendungen
Für komplexe UserInteractionen
MVVM Paradigma(MVC) Mehr V als MVC
03/06/2019 reveal.js
localhost:8000/?print-pdf 59/86
ANGULARANGULAR
03/06/2019 reveal.js
localhost:8000/?print-pdf 60/86
ANGULARANGULARist ein Framework
03/06/2019 reveal.js
localhost:8000/?print-pdf 61/86
ANGULARANGULARist ein Framework
eingebautes Routing
03/06/2019 reveal.js
localhost:8000/?print-pdf 62/86
ANGULARANGULARist ein Framework
eingebautes Routing
eingebautes State managment
03/06/2019 reveal.js
localhost:8000/?print-pdf 63/86
ANGULARANGULARist ein Framework
eingebautes Routing
eingebautes State managment
two-way binding
03/06/2019 reveal.js
localhost:8000/?print-pdf 64/86
ANGULARANGULAR
03/06/2019 reveal.js
localhost:8000/?print-pdf 65/86
ANGULARANGULARshadow DOM
03/06/2019 reveal.js
localhost:8000/?print-pdf 66/86
ANGULARANGULARshadow DOM
mit Tests im Sinn gebaut
03/06/2019 reveal.js
localhost:8000/?print-pdf 67/86
ANGULARANGULARshadow DOM
mit Tests im Sinn gebaut
Native Script
03/06/2019 reveal.js
localhost:8000/?print-pdf 68/86
ANGULARANGULARshadow DOM
mit Tests im Sinn gebaut
Native Script
Ionic
03/06/2019 reveal.js
localhost:8000/?print-pdf 69/86
REACTREACT
03/06/2019 reveal.js
localhost:8000/?print-pdf 70/86
REACTREACTist eine Library
03/06/2019 reveal.js
localhost:8000/?print-pdf 71/86
REACTREACTist eine Library
erweiterbar durch andere Libraries
03/06/2019 reveal.js
localhost:8000/?print-pdf 72/86
REACTREACTist eine Library
erweiterbar durch andere Libraries
Komponenten Basiert
03/06/2019 reveal.js
localhost:8000/?print-pdf 73/86
REACTREACTist eine Library
erweiterbar durch andere Libraries
Komponenten Basiert
kein two-way binding
03/06/2019 reveal.js
localhost:8000/?print-pdf 74/86
REACTREACT
03/06/2019 reveal.js
localhost:8000/?print-pdf 75/86
REACTREACTVirtual DOM
03/06/2019 reveal.js
localhost:8000/?print-pdf 76/86
REACTREACTVirtual DOM
Komponenten inital virtual gerendet, nur bei änderungneu
03/06/2019 reveal.js
localhost:8000/?print-pdf 77/86
REACTREACTVirtual DOM
Komponenten inital virtual gerendet, nur bei änderungneu
Seperation zwischen immutable und mutable state
03/06/2019 reveal.js
localhost:8000/?print-pdf 78/86
REACTREACTVirtual DOM
Komponenten inital virtual gerendet, nur bei änderungneu
Seperation zwischen immutable und mutable state
React kann leicht zu exisitierenden Applikationhinzugefügt werden
03/06/2019 reveal.js
localhost:8000/?print-pdf 79/86
LIVE BEISPIELLIVE BEISPIEL
03/06/2019 reveal.js
localhost:8000/?print-pdf 80/86
FAZITFAZIT
03/06/2019 reveal.js
localhost:8000/?print-pdf 81/86
03/06/2019 reveal.js
localhost:8000/?print-pdf 82/86
beide sind gut
03/06/2019 reveal.js
localhost:8000/?print-pdf 83/86
beide sind gut
kommt auf use case an
03/06/2019 reveal.js
localhost:8000/?print-pdf 84/86
beide sind gut
kommt auf use case an
größe von Applikation
03/06/2019 reveal.js
localhost:8000/?print-pdf 85/86
DANKE FÜR EUREDANKE FÜR EUREAUFMERKSAMKEITAUFMERKSAMKEIT
03/06/2019 reveal.js
localhost:8000/?print-pdf 86/86
LINKSLINKShttps://reactjs.org/docs/getting-started.htmlhttps://angular.io/guide/quickstart