SlideShare a Scribd company logo
1 of 63
Download to read offline
Sebastian
• Sebastian Springer
• aus München
• arbeite bei MaibornWolff GmbH
• https://github.com/sspringer82
• @basti_springer
• JavaScript Entwickler
IT-Beratung &
Software Engineering
Und was genau ist React?
lichtkunst.73 / pixelio.de
var HelloWorld = React.createClass({

render: function () {

return (

<h1>Hello World!</h1>

);

}

});



ReactDOM.render(

<HelloWorld />,

document.getElementById('example')

);
A JavaScript library for
building user interfaces
Just the UI - no structure
harry256 / pixelio.de
Virtual DOM
<!DOCTYPE HTML>
<html>
<head>
<meta charset=”UTF-8”>
</head>
<body>
<h1>Hello World</h1>
</body>
</html>
html
"## head
$   %## meta
%## body
%## h1
%## #text
Das DOM ist eine Baumstruktur. Diese kann bei Änderungen
recht einfach verarbeitet werden.
Das DOM bei umfangreicheren Single Page-Applikationen
kann recht umfangreich werden. Die Verarbeitung wird dann
sehr langsam.
Das Virtual DOM ist eine Abstraktion des DOM.
React führt Berechnungen und Änderungen durch und fasst
die Aktionen so zusammen, dass sie vom Browser möglichst
performant umgesetzt werden können.
React verfügt über zusätzliche Attribute, die nicht im DOM
auftauchen.
React Element
Light, stateless, immutable, virtual representation of a DOM
Element.
var HelloWorld = React.createClass({

render: function () {

return (

<h1>Hello World!</h1>

);

}

});
React Component
Stateful elements of a react application.
Bei Änderungen werden die Components in Elements
übersetzt.
Im Virtual DOM werden die Änderungen berechnet und für
den Browser optimiert auf den tatsächlichen DOM
angewendet.
Datenfluss
Rita Gattermann / pixelio.de
One Way Data Binding
Parent ChildDatenfluss
Events
Security
S. Hofschlaeger / pixelio.de
Security
React weist eine eingebaute XSS Protection auf. Es ist nur
recht aufwändig möglich, HTML-Strings direkt auszugeben.
Man muss diese Sicherung also bewusst umgehen.
JSX
var HelloWorld = React.createClass({

render: function () {

return (

<h1>Hello World!</h1>

);

}

});



ReactDOM.render(

<HelloWorld />,

document.getElementById('example')

);
JSX
Syntax-Erweiterung für JavaScript, die aussieht wie XML.
React transformiert JSX in natives JavaScript. Man kann
also React auch ohne JSX schreiben.
Hello World
Thorsten Müller / pixelio.de
index.html
<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>React</title>

<link rel="stylesheet" href="css/style.css" />

<script src="js/lib/react.js"></script>

<script src=“js/lib/react-dom.js"></script>

<script src=“js/lib/browser.js"></script>

<script src=“js/lib/jquery.min.js"></script>

</head>

<body>

<div id="content"></div>

<script type="text/babel" src=“js/app/app.js"></script>

</body>

</html>
app.js
var HelloWorld = React.createClass({

render: function () {

return (

<h1>Hello World</h1>

)

}

});



ReactDOM.render(

<HelloWorld />,

document.getElementById('content')

);
ES 6 Klassen
class HelloWorld extends React.Component {

render() {

return (

<h1>Hello World</h1>

)

}

}



ReactDOM.render(

<HelloWorld />,

document.getElementById('content')

);
Alternativ können Components auch in ES6 formuliert werden.
Components
class und for sind reservierte Wörter in JavaScript.
Deswegen müssen in Components className und htmlFor
verwendet werden.
Props
Props
Informationen, die von außen in die Komponente
hineingereicht werden.
Props
class HelloWorld extends React.Component {

render() {

return (

<h1>Hello {this.props.name}</h1>

)

}

}



ReactDOM.render(

<HelloWorld name="Klaus"/>,

document.getElementById('content')

);
Props
Standardwerte für props werden über getDefaultProps
gesetzt.
State
State
Jede Komponente verwaltet ihren eigenen internen State.
Bei einer Änderung des States wird die render-Methode
erneut ausgeführt.
Der State wird über setState gesetzt.
State
class HelloWorld extends React.Component {

constructor() {

super();

this.state = {

time: 0

}

}

componentDidMount() {

this.interval = setInterval(() => {

this.setState({time: this.state.time + 1});

}, 1000);

}

render() {

return (

<h1>{this.state.time}</h1>

)

}

}
State
Wenn eine Komponente mit createClass erstellt wird, werden
die Startwerte des States mit getInitialState gesetzt.
Events
PeterFranz / pixelio.de
Events
Um Informationen von der Darstellung in die Komponente
fließen zu lassen, werden Events verwendet.
Typische Events sind onChange, onClick, onSubmit,…
An diese Events werden Callback-Funktionen der
Komponente gebunden.
Datenfluss
class HelloWorld extends React.Component {

constructor() {

super();

this.state = {

name: 'Hans-Peter'

}

}

handleValueChange(e) {

this.setState({name: e.target.value});

}

render() {

return (

<div>

<div>{this.state.name}</div>

<input type="text"

value={this.state.name}

onChange={this.handleValueChange.bind(this)}

/>

</div>

)

}

}
Datenfluss
Komponenten-Hierarchie
detlef menzel / pixelio.de
Komponenten-Hierarchie
Elternkomponente
Kindkomponente
ParentComponent
ChildComponent
ParentComponent
ChildComponent
changeColor
var ParentComponent = React.createClass({

render: function() {

return (

<div>

<div>Parent</div>

<ChildComponent />

</div>

)

}

});



var ChildComponent = React.createClass({

render: function() {

return (

<div>

<button>push</button>

</div>

)

}

});
ReactDOM.render(

<ParentComponent />,

document.getElementById('content')

);
var ParentComponent = React.createClass({

getInitialState: function () {

return {

red: true,

yellow: false,

green: false

}

},

handleChange: function() {

this.setState({

red: false,

green: true

});

},

render: function() {

return (

<div>

<ChildComponent onChangeColor={this.handleChange}/>

</div>

)

}

});
var ChildComponent = React.createClass({

handleChange: function() {

this.props.onChangeColor();

},

render: function() {

return (

<div>

<button onClick={this.handleChange}>push</button>

</div>

)

}

});
Lifecycle
uschi dreiucker / pixelio.de
Lifecycle
Initialisierung: Die Komponente wird zum ersten Mal
eingebunden.
State Change: Der State einer Komponente wird verändert.
Props Change: Die Props einer Komponente werden
geändert.
Initialisierung
GetDefaultProps
GetInitialState
ComponentWillMount
Render
ComponentDidMount
State Change
ShouldComponentUpdate
ComponentWillUpdate
Render
ComponentDidUpdate
Props Change
ComponentWillReceiveProps
ComponentShouldUpdate
ComponentWillUpdate
Render
ComponentDidUpdate
Build
Rudolpho Duba / pixelio.de
Build
Aktuell besteht die Applikation noch aus mehreren Dateien.
Das Ziel ist, dass nur noch eine Datei ausgeliefert wird.
React-Applikationen können mit verschiedenen Build-
Systemen wie z.B. webpack gebaut werden.
Build
{

"scripts": {

"build": "node_modules/.bin/webpack main.js bundle.js --module-
bind 'js=babel-loader'"

},

"dependencies": {

"babel-core": "^6.9.0",

"babel-loader": "^6.2.4",

"babel-preset-es2015": "^6.9.0",

"babel-preset-react": "^6.5.0",

"react": "^15.0.2",

"react-dom": "^15.0.2",

"webpack": "^1.13.1"

}

}
Build
$ npm install
$ npm run build
> @ build /react
> webpack main.js bundle.js --module-bind
'js=babel-loader'
Hash: 154dd060b2495527de56
Version: webpack 1.13.1
Time: 3574ms
Asset Size Chunks Chunk Names
bundle.js 702 kB 0 [emitted] main
+ 169 hidden modules
Build
<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8" />

<title>Hello React!</title>

</head>

<body>

<div id="example"></div>

<script src="bundle.js"></script>

</body>

</html>
Flux
Architektur für React-Applikationen. Kein Framework,
sondern mehr eine Guideline.
Flux
Action Dispatcher Store View
API
Flux
Actions: reichen Informationen an den Dispatcher weiter
Dispatcher: Reicht die Informationen zu den registrierten
Stores weiter
Stores: Halten den Application State und die Logik
Views: React Komponenten, die den State aus den Stores
bekommen
Flux
Die Interaktion erfolgt über die Komponenten, die Actions
auslösen.
Die Views modifizieren den Application State nicht direkt.
Vorteil: Unidirektionaler Datenfluss und Entkopplung
Flux
Es gibt mittlerweile mehrere Flux-Implementierungen:
Flux, Fluxxor, RefulxJS, Redux oder fluxible-app.
Fragen?
Rainer Sturm / pixelio.de
KONTAKT
Sebastian Springer
sebastian-springer@maibornwolff.de
MaibornWolff GmbH
Theresienhöhe 13
80339 München
@basti_springer
https://github.com/sspringer82

More Related Content

What's hot

Schnelle Winkel: 10x schnellere Webapps mit AngularJS und JEE
Schnelle Winkel: 10x schnellere Webapps mit AngularJS und JEESchnelle Winkel: 10x schnellere Webapps mit AngularJS und JEE
Schnelle Winkel: 10x schnellere Webapps mit AngularJS und JEEBenjamin Schmid
 
Javascript auf Client und Server mit node.js - webtech 2010
Javascript auf Client und Server mit node.js - webtech 2010Javascript auf Client und Server mit node.js - webtech 2010
Javascript auf Client und Server mit node.js - webtech 2010Dirk Ginader
 
Java Batch: Der neue Standard für‘s Stapeln
Java Batch: Der neue Standard für‘s StapelnJava Batch: Der neue Standard für‘s Stapeln
Java Batch: Der neue Standard für‘s Stapelngedoplan
 
Prototype 1.7
Prototype 1.7Prototype 1.7
Prototype 1.7msebel
 
Go - Googles Sprache für skalierbare Systeme
Go - Googles Sprache für skalierbare SystemeGo - Googles Sprache für skalierbare Systeme
Go - Googles Sprache für skalierbare SystemeFrank Müller
 
Von 0 auf 100 - Performance im Web
Von 0 auf 100 - Performance im WebVon 0 auf 100 - Performance im Web
Von 0 auf 100 - Performance im WebSebastian Springer
 
JsUnconf 2014
JsUnconf 2014JsUnconf 2014
JsUnconf 2014emrox
 
dotnet Cologne 2013 - Windows Azure Mobile Services
dotnet Cologne 2013 - Windows Azure Mobile Servicesdotnet Cologne 2013 - Windows Azure Mobile Services
dotnet Cologne 2013 - Windows Azure Mobile ServicesSascha Dittmann
 
Einführung in Clean Code mit .NET - Teil 1
Einführung in Clean Code mit .NET - Teil 1Einführung in Clean Code mit .NET - Teil 1
Einführung in Clean Code mit .NET - Teil 1Gregor Biswanger
 
Verteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und KubernetesVerteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und KubernetesGregor Biswanger
 
Cloud Provisioning mit Juju
Cloud Provisioning mit JujuCloud Provisioning mit Juju
Cloud Provisioning mit JujuFrank Müller
 
DOAG: NoSQL with MySQL
DOAG: NoSQL with MySQLDOAG: NoSQL with MySQL
DOAG: NoSQL with MySQLFromDual GmbH
 
WPF Dos n Don'ts - der WPF Rundumschlag
WPF Dos n Don'ts - der WPF RundumschlagWPF Dos n Don'ts - der WPF Rundumschlag
WPF Dos n Don'ts - der WPF RundumschlagHendrik Lösch
 
Javascript done right
Javascript done rightJavascript done right
Javascript done rightDirk Ginader
 
Angular von 0 auf 100
Angular von 0 auf 100Angular von 0 auf 100
Angular von 0 auf 100Yvette Teiken
 
Python builds mit ant
Python builds mit antPython builds mit ant
Python builds mit antroskakori
 
130605 blog - drools
130605   blog - drools130605   blog - drools
130605 blog - droolsjava-pe
 
Java Batch – Der Standard für's Stapeln
Java Batch – Der Standard für's StapelnJava Batch – Der Standard für's Stapeln
Java Batch – Der Standard für's Stapelngedoplan
 

What's hot (20)

Schnelle Winkel: 10x schnellere Webapps mit AngularJS und JEE
Schnelle Winkel: 10x schnellere Webapps mit AngularJS und JEESchnelle Winkel: 10x schnellere Webapps mit AngularJS und JEE
Schnelle Winkel: 10x schnellere Webapps mit AngularJS und JEE
 
Javascript auf Client und Server mit node.js - webtech 2010
Javascript auf Client und Server mit node.js - webtech 2010Javascript auf Client und Server mit node.js - webtech 2010
Javascript auf Client und Server mit node.js - webtech 2010
 
Mvc public
Mvc publicMvc public
Mvc public
 
Java Batch: Der neue Standard für‘s Stapeln
Java Batch: Der neue Standard für‘s StapelnJava Batch: Der neue Standard für‘s Stapeln
Java Batch: Der neue Standard für‘s Stapeln
 
Prototype 1.7
Prototype 1.7Prototype 1.7
Prototype 1.7
 
Go - Googles Sprache für skalierbare Systeme
Go - Googles Sprache für skalierbare SystemeGo - Googles Sprache für skalierbare Systeme
Go - Googles Sprache für skalierbare Systeme
 
Von 0 auf 100 - Performance im Web
Von 0 auf 100 - Performance im WebVon 0 auf 100 - Performance im Web
Von 0 auf 100 - Performance im Web
 
JsUnconf 2014
JsUnconf 2014JsUnconf 2014
JsUnconf 2014
 
dotnet Cologne 2013 - Windows Azure Mobile Services
dotnet Cologne 2013 - Windows Azure Mobile Servicesdotnet Cologne 2013 - Windows Azure Mobile Services
dotnet Cologne 2013 - Windows Azure Mobile Services
 
Einführung in Clean Code mit .NET - Teil 1
Einführung in Clean Code mit .NET - Teil 1Einführung in Clean Code mit .NET - Teil 1
Einführung in Clean Code mit .NET - Teil 1
 
Verteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und KubernetesVerteilte Anwendungen bei Azure mit Docker und Kubernetes
Verteilte Anwendungen bei Azure mit Docker und Kubernetes
 
Cloud Provisioning mit Juju
Cloud Provisioning mit JujuCloud Provisioning mit Juju
Cloud Provisioning mit Juju
 
node.js
node.jsnode.js
node.js
 
DOAG: NoSQL with MySQL
DOAG: NoSQL with MySQLDOAG: NoSQL with MySQL
DOAG: NoSQL with MySQL
 
WPF Dos n Don'ts - der WPF Rundumschlag
WPF Dos n Don'ts - der WPF RundumschlagWPF Dos n Don'ts - der WPF Rundumschlag
WPF Dos n Don'ts - der WPF Rundumschlag
 
Javascript done right
Javascript done rightJavascript done right
Javascript done right
 
Angular von 0 auf 100
Angular von 0 auf 100Angular von 0 auf 100
Angular von 0 auf 100
 
Python builds mit ant
Python builds mit antPython builds mit ant
Python builds mit ant
 
130605 blog - drools
130605   blog - drools130605   blog - drools
130605 blog - drools
 
Java Batch – Der Standard für's Stapeln
Java Batch – Der Standard für's StapelnJava Batch – Der Standard für's Stapeln
Java Batch – Der Standard für's Stapeln
 

Viewers also liked

Client Side MVC & Angular
Client Side MVC & AngularClient Side MVC & Angular
Client Side MVC & AngularAlexe Bogdan
 
ECMAScript 6 im Produktivbetrieb
ECMAScript 6 im ProduktivbetriebECMAScript 6 im Produktivbetrieb
ECMAScript 6 im ProduktivbetriebSebastian Springer
 
Introduction of ASP.NET MVC and AngularJS
Introduction of ASP.NET MVC and AngularJSIntroduction of ASP.NET MVC and AngularJS
Introduction of ASP.NET MVC and AngularJSMohamed Elkhodary
 
ASP.NET MVC, AngularJS CRUD for Azerbaijan Technical University
ASP.NET MVC, AngularJS CRUD for Azerbaijan Technical UniversityASP.NET MVC, AngularJS CRUD for Azerbaijan Technical University
ASP.NET MVC, AngularJS CRUD for Azerbaijan Technical UniversitySyed Shanu
 
Mtu exportaciones[1]
Mtu exportaciones[1]Mtu exportaciones[1]
Mtu exportaciones[1]ALLUS BPO
 
Presentation roberts europe
Presentation roberts europePresentation roberts europe
Presentation roberts europeRobertsEurope
 
CríTica De NicoláS Suescuncien AñOs
CríTica De NicoláS Suescuncien AñOsCríTica De NicoláS Suescuncien AñOs
CríTica De NicoláS Suescuncien AñOsJhon Ramirez
 
Projektmanagement in vernetzten Forschungsprojekten
Projektmanagement in vernetzten ForschungsprojektenProjektmanagement in vernetzten Forschungsprojekten
Projektmanagement in vernetzten ForschungsprojektenChristian Heise
 
Teaching Students "In" and "On" Today's Information Environment
Teaching Students "In" and "On" Today's Information EnvironmentTeaching Students "In" and "On" Today's Information Environment
Teaching Students "In" and "On" Today's Information EnvironmentLauren Pressley
 
Foto de carnet
Foto de carnetFoto de carnet
Foto de carnetmaria99a
 
Marrueco, otro mundo
Marrueco, otro mundoMarrueco, otro mundo
Marrueco, otro mundojlpcaceres
 
Möjligheter och fallgropar
Möjligheter och fallgroparMöjligheter och fallgropar
Möjligheter och fallgroparJohan Groth
 
J. Barba. Solucion movil de gestión de la red de distribucion de agua potable...
J. Barba. Solucion movil de gestión de la red de distribucion de agua potable...J. Barba. Solucion movil de gestión de la red de distribucion de agua potable...
J. Barba. Solucion movil de gestión de la red de distribucion de agua potable...COIICV
 
Las navidades en_polonia_i
Las navidades en_polonia_iLas navidades en_polonia_i
Las navidades en_polonia_iDomingo Querol
 

Viewers also liked (20)

Client Side MVC & Angular
Client Side MVC & AngularClient Side MVC & Angular
Client Side MVC & Angular
 
ECMAScript 6 im Produktivbetrieb
ECMAScript 6 im ProduktivbetriebECMAScript 6 im Produktivbetrieb
ECMAScript 6 im Produktivbetrieb
 
Streams in Node.js
Streams in Node.jsStreams in Node.js
Streams in Node.js
 
Introduction of ASP.NET MVC and AngularJS
Introduction of ASP.NET MVC and AngularJSIntroduction of ASP.NET MVC and AngularJS
Introduction of ASP.NET MVC and AngularJS
 
ASP.NET MVC, AngularJS CRUD for Azerbaijan Technical University
ASP.NET MVC, AngularJS CRUD for Azerbaijan Technical UniversityASP.NET MVC, AngularJS CRUD for Azerbaijan Technical University
ASP.NET MVC, AngularJS CRUD for Azerbaijan Technical University
 
Angular2
Angular2Angular2
Angular2
 
EuroMagazine
EuroMagazineEuroMagazine
EuroMagazine
 
Mtu exportaciones[1]
Mtu exportaciones[1]Mtu exportaciones[1]
Mtu exportaciones[1]
 
Presentation roberts europe
Presentation roberts europePresentation roberts europe
Presentation roberts europe
 
41 alianzas estratgicas
41 alianzas estratgicas41 alianzas estratgicas
41 alianzas estratgicas
 
CríTica De NicoláS Suescuncien AñOs
CríTica De NicoláS Suescuncien AñOsCríTica De NicoláS Suescuncien AñOs
CríTica De NicoláS Suescuncien AñOs
 
Projektmanagement in vernetzten Forschungsprojekten
Projektmanagement in vernetzten ForschungsprojektenProjektmanagement in vernetzten Forschungsprojekten
Projektmanagement in vernetzten Forschungsprojekten
 
Teaching Students "In" and "On" Today's Information Environment
Teaching Students "In" and "On" Today's Information EnvironmentTeaching Students "In" and "On" Today's Information Environment
Teaching Students "In" and "On" Today's Information Environment
 
Foto de carnet
Foto de carnetFoto de carnet
Foto de carnet
 
Marrueco, otro mundo
Marrueco, otro mundoMarrueco, otro mundo
Marrueco, otro mundo
 
Möjligheter och fallgropar
Möjligheter och fallgroparMöjligheter och fallgropar
Möjligheter och fallgropar
 
Kit Advertiz
Kit AdvertizKit Advertiz
Kit Advertiz
 
J. Barba. Solucion movil de gestión de la red de distribucion de agua potable...
J. Barba. Solucion movil de gestión de la red de distribucion de agua potable...J. Barba. Solucion movil de gestión de la red de distribucion de agua potable...
J. Barba. Solucion movil de gestión de la red de distribucion de agua potable...
 
Las navidades en_polonia_i
Las navidades en_polonia_iLas navidades en_polonia_i
Las navidades en_polonia_i
 
Leccion joven: la salvación: la única alternativa
Leccion joven: la salvación: la única alternativaLeccion joven: la salvación: la única alternativa
Leccion joven: la salvación: la única alternativa
 

Similar to Einführung in React

Welches Webframework passt zu mir? (WJAX)
Welches Webframework passt zu mir? (WJAX)Welches Webframework passt zu mir? (WJAX)
Welches Webframework passt zu mir? (WJAX)Alexander Casall
 
JSF 2 Kompositkomponenten (JAX 2012)
JSF 2 Kompositkomponenten (JAX 2012)JSF 2 Kompositkomponenten (JAX 2012)
JSF 2 Kompositkomponenten (JAX 2012)Michael Kurz
 
Einführung React Native
Einführung React NativeEinführung React Native
Einführung React NativeMarkus Günther
 
jQueryMobile mit Extbase/Fluid
jQueryMobile mit Extbase/FluidjQueryMobile mit Extbase/Fluid
jQueryMobile mit Extbase/FluidPeter Schuhmann
 
Mobile Webentwicklung mit HTML5
Mobile Webentwicklung mit HTML5Mobile Webentwicklung mit HTML5
Mobile Webentwicklung mit HTML5kkramhoeft
 
Christian heilmann html 5 - das web und der browser als platform
Christian heilmann   html 5 - das web und der browser als platformChristian heilmann   html 5 - das web und der browser als platform
Christian heilmann html 5 - das web und der browser als platformChristian Heilmann
 
Dojo Und Notes
Dojo Und NotesDojo Und Notes
Dojo Und Notesdominion
 
Legacy WebApps mit AngularJS pimpen
Legacy WebApps mit AngularJS pimpenLegacy WebApps mit AngularJS pimpen
Legacy WebApps mit AngularJS pimpenPhilipp Burgmer
 
REST: Versprechen, Wirklichkeit & Alternativen: GraphQL, GRPC, JSON RPC...
REST: Versprechen, Wirklichkeit & Alternativen: GraphQL, GRPC, JSON RPC...REST: Versprechen, Wirklichkeit & Alternativen: GraphQL, GRPC, JSON RPC...
REST: Versprechen, Wirklichkeit & Alternativen: GraphQL, GRPC, JSON RPC...predic8
 
JavaServer Faces 2.2 (Herbstcampus 2013)
JavaServer Faces 2.2 (Herbstcampus 2013)JavaServer Faces 2.2 (Herbstcampus 2013)
JavaServer Faces 2.2 (Herbstcampus 2013)Michael Kurz
 
.NET Summit 2016 in München: ASP.NET Core 1
.NET Summit 2016 in München: ASP.NET Core 1.NET Summit 2016 in München: ASP.NET Core 1
.NET Summit 2016 in München: ASP.NET Core 1Manfred Steyer
 
Microservices mit Rust
Microservices mit RustMicroservices mit Rust
Microservices mit RustJens Siebert
 
Fanstatic pycon.de 2012
Fanstatic pycon.de 2012Fanstatic pycon.de 2012
Fanstatic pycon.de 2012Daniel Havlik
 
JSF meets JS (2. ed.) - JSF-Komponenten mit JavaScript
JSF meets JS (2. ed.) - JSF-Komponenten mit JavaScriptJSF meets JS (2. ed.) - JSF-Komponenten mit JavaScript
JSF meets JS (2. ed.) - JSF-Komponenten mit JavaScriptOPEN KNOWLEDGE GmbH
 
Andy bosch-jsf-javascript
Andy bosch-jsf-javascriptAndy bosch-jsf-javascript
Andy bosch-jsf-javascriptAndy Bosch
 
Ajax and JavaScript mit Ruby on Rails
Ajax and JavaScript mit Ruby on RailsAjax and JavaScript mit Ruby on Rails
Ajax and JavaScript mit Ruby on RailsJonathan Weiss
 
Nutze die Macht @ IKT-Forum 09 Linz
Nutze die Macht @ IKT-Forum 09 LinzNutze die Macht @ IKT-Forum 09 Linz
Nutze die Macht @ IKT-Forum 09 LinzEric Eggert
 

Similar to Einführung in React (20)

Welches Webframework passt zu mir? (WJAX)
Welches Webframework passt zu mir? (WJAX)Welches Webframework passt zu mir? (WJAX)
Welches Webframework passt zu mir? (WJAX)
 
JSF 2 Kompositkomponenten (JAX 2012)
JSF 2 Kompositkomponenten (JAX 2012)JSF 2 Kompositkomponenten (JAX 2012)
JSF 2 Kompositkomponenten (JAX 2012)
 
Einführung React Native
Einführung React NativeEinführung React Native
Einführung React Native
 
Ruby on Rails SS09 06
Ruby on Rails SS09 06Ruby on Rails SS09 06
Ruby on Rails SS09 06
 
jQueryMobile mit Extbase/Fluid
jQueryMobile mit Extbase/FluidjQueryMobile mit Extbase/Fluid
jQueryMobile mit Extbase/Fluid
 
Mobile Webentwicklung mit HTML5
Mobile Webentwicklung mit HTML5Mobile Webentwicklung mit HTML5
Mobile Webentwicklung mit HTML5
 
Wicket Kurzübersicht
Wicket KurzübersichtWicket Kurzübersicht
Wicket Kurzübersicht
 
Christian heilmann html 5 - das web und der browser als platform
Christian heilmann   html 5 - das web und der browser als platformChristian heilmann   html 5 - das web und der browser als platform
Christian heilmann html 5 - das web und der browser als platform
 
Dojo Und Notes
Dojo Und NotesDojo Und Notes
Dojo Und Notes
 
Legacy WebApps mit AngularJS pimpen
Legacy WebApps mit AngularJS pimpenLegacy WebApps mit AngularJS pimpen
Legacy WebApps mit AngularJS pimpen
 
REST: Versprechen, Wirklichkeit & Alternativen: GraphQL, GRPC, JSON RPC...
REST: Versprechen, Wirklichkeit & Alternativen: GraphQL, GRPC, JSON RPC...REST: Versprechen, Wirklichkeit & Alternativen: GraphQL, GRPC, JSON RPC...
REST: Versprechen, Wirklichkeit & Alternativen: GraphQL, GRPC, JSON RPC...
 
JavaServer Faces 2.2 (Herbstcampus 2013)
JavaServer Faces 2.2 (Herbstcampus 2013)JavaServer Faces 2.2 (Herbstcampus 2013)
JavaServer Faces 2.2 (Herbstcampus 2013)
 
.NET Summit 2016 in München: ASP.NET Core 1
.NET Summit 2016 in München: ASP.NET Core 1.NET Summit 2016 in München: ASP.NET Core 1
.NET Summit 2016 in München: ASP.NET Core 1
 
react-de.pdf
react-de.pdfreact-de.pdf
react-de.pdf
 
Microservices mit Rust
Microservices mit RustMicroservices mit Rust
Microservices mit Rust
 
Fanstatic pycon.de 2012
Fanstatic pycon.de 2012Fanstatic pycon.de 2012
Fanstatic pycon.de 2012
 
JSF meets JS (2. ed.) - JSF-Komponenten mit JavaScript
JSF meets JS (2. ed.) - JSF-Komponenten mit JavaScriptJSF meets JS (2. ed.) - JSF-Komponenten mit JavaScript
JSF meets JS (2. ed.) - JSF-Komponenten mit JavaScript
 
Andy bosch-jsf-javascript
Andy bosch-jsf-javascriptAndy bosch-jsf-javascript
Andy bosch-jsf-javascript
 
Ajax and JavaScript mit Ruby on Rails
Ajax and JavaScript mit Ruby on RailsAjax and JavaScript mit Ruby on Rails
Ajax and JavaScript mit Ruby on Rails
 
Nutze die Macht @ IKT-Forum 09 Linz
Nutze die Macht @ IKT-Forum 09 LinzNutze die Macht @ IKT-Forum 09 Linz
Nutze die Macht @ IKT-Forum 09 Linz
 

More from Sebastian Springer

Creating Enterprise Web Applications with Node.js
Creating Enterprise Web Applications with Node.jsCreating Enterprise Web Applications with Node.js
Creating Enterprise Web Applications with Node.jsSebastian Springer
 
Divide and Conquer – Microservices with Node.js
Divide and Conquer – Microservices with Node.jsDivide and Conquer – Microservices with Node.js
Divide and Conquer – Microservices with Node.jsSebastian Springer
 
From Zero to Hero – Web Performance
From Zero to Hero – Web PerformanceFrom Zero to Hero – Web Performance
From Zero to Hero – Web PerformanceSebastian Springer
 
Best Practices für TDD in JavaScript
Best Practices für TDD in JavaScriptBest Practices für TDD in JavaScript
Best Practices für TDD in JavaScriptSebastian Springer
 
Warum ECMAScript 6 die Welt ein Stückchen besser macht
Warum ECMAScript 6 die Welt ein Stückchen besser machtWarum ECMAScript 6 die Welt ein Stückchen besser macht
Warum ECMAScript 6 die Welt ein Stückchen besser machtSebastian Springer
 
10 Dinge die ich an dir hasse - Stolpersteine in der Webentwicklung
10 Dinge die ich an dir hasse - Stolpersteine in der Webentwicklung10 Dinge die ich an dir hasse - Stolpersteine in der Webentwicklung
10 Dinge die ich an dir hasse - Stolpersteine in der WebentwicklungSebastian Springer
 

More from Sebastian Springer (20)

Schnelleinstieg in Angular
Schnelleinstieg in AngularSchnelleinstieg in Angular
Schnelleinstieg in Angular
 
Creating Enterprise Web Applications with Node.js
Creating Enterprise Web Applications with Node.jsCreating Enterprise Web Applications with Node.js
Creating Enterprise Web Applications with Node.js
 
Divide and Conquer – Microservices with Node.js
Divide and Conquer – Microservices with Node.jsDivide and Conquer – Microservices with Node.js
Divide and Conquer – Microservices with Node.js
 
From Zero to Hero – Web Performance
From Zero to Hero – Web PerformanceFrom Zero to Hero – Web Performance
From Zero to Hero – Web Performance
 
A/B Testing mit Node.js
A/B Testing mit Node.jsA/B Testing mit Node.js
A/B Testing mit Node.js
 
Node.js Security
Node.js SecurityNode.js Security
Node.js Security
 
Typescript
TypescriptTypescript
Typescript
 
Best Practices für TDD in JavaScript
Best Practices für TDD in JavaScriptBest Practices für TDD in JavaScript
Best Practices für TDD in JavaScript
 
Warum ECMAScript 6 die Welt ein Stückchen besser macht
Warum ECMAScript 6 die Welt ein Stückchen besser machtWarum ECMAScript 6 die Welt ein Stückchen besser macht
Warum ECMAScript 6 die Welt ein Stückchen besser macht
 
Lean Startup mit JavaScript
Lean Startup mit JavaScriptLean Startup mit JavaScript
Lean Startup mit JavaScript
 
Webapplikationen mit Node.js
Webapplikationen mit Node.jsWebapplikationen mit Node.js
Webapplikationen mit Node.js
 
Node.js für Webapplikationen
Node.js für WebapplikationenNode.js für Webapplikationen
Node.js für Webapplikationen
 
Debugging und Profiling
Debugging und ProfilingDebugging und Profiling
Debugging und Profiling
 
Node.js
Node.jsNode.js
Node.js
 
JavaScript Architektur
JavaScript ArchitekturJavaScript Architektur
JavaScript Architektur
 
Angular translate
Angular translateAngular translate
Angular translate
 
10 Dinge die ich an dir hasse - Stolpersteine in der Webentwicklung
10 Dinge die ich an dir hasse - Stolpersteine in der Webentwicklung10 Dinge die ich an dir hasse - Stolpersteine in der Webentwicklung
10 Dinge die ich an dir hasse - Stolpersteine in der Webentwicklung
 
Error handling in JavaScript
Error handling in JavaScriptError handling in JavaScript
Error handling in JavaScript
 
JavaScript Architektur
JavaScript ArchitekturJavaScript Architektur
JavaScript Architektur
 
Java scriptarchitektur
Java scriptarchitekturJava scriptarchitektur
Java scriptarchitektur
 

Einführung in React