React in Apex - doag.org · © VERBUND AG, React in Apex Mit React zu noch besseren Apex Apps...

Post on 09-Aug-2019

242 views 0 download

Transcript of React in Apex - doag.org · © VERBUND AG, React in Apex Mit React zu noch besseren Apex Apps...

© VERBUND AG, www.verbund.com

React in ApexMit React zu noch besseren Apex Apps

Martin Schumacher, Apex Connect 2018

© VERBUND AG, www.verbund.com Seite24.4.2018 2Martin.Schumacher@verbund.com, Twitter: @mschuApex

Demo 1: React Komponente in IG Report Column

Intro

© VERBUND AG, www.verbund.com Seite24.4.2018 3Martin.Schumacher@verbund.com, Twitter: @mschuApex

Demo 1: React Komponente in IG Report Column

Intro

© VERBUND AG, www.verbund.com Seite24.4.2018 4Martin.Schumacher@verbund.com, Twitter: @mschuApex

Demo 2: Eine komplette Apex Seite als React Komponente

Intro

© VERBUND AG, www.verbund.com Seite24.4.2018 5Martin.Schumacher@verbund.com, Twitter: @mschuApex

Demo 2: Eine komplette Apex Seite als React Komponente

Intro

© VERBUND AG, www.verbund.com Seite24.4.2018 6Martin.Schumacher@verbund.com, Twitter: @mschuApex

Demo 2: Eine komplette Apex Seite als React Komponente

Intro

Die Apex Felder dienen hier zur zwei Wege Kommunikation mit der React Komponente

© VERBUND AG, www.verbund.com Seite24.4.2018 7Martin.Schumacher@verbund.com, Twitter: @mschuApex

React

https://reactjs.org/

© VERBUND AG, www.verbund.com Seite24.4.2018 8Martin.Schumacher@verbund.com, Twitter: @mschuApex

React

Komponenten JSX Shadow DOM

State <component>

</component>

render()

Props className="..."

componentDidMount() { javascript }

Programmierer kümmert sich um die Inhalte,

React um das rendern

© VERBUND AG, www.verbund.com Seite24.4.2018 9Martin.Schumacher@verbund.com, Twitter: @mschuApex

Aufsetzen der Arbeitsumgebung

Arbeitsumgebung

Node.js VSCode

https://github.com/facebook/create-react-app

© VERBUND AG, www.verbund.com Seite24.4.2018 10Martin.Schumacher@verbund.com, Twitter: @mschuApex

Installation create-react-app und Erstellung erstes Projekt

Arbeitsumgebung

© VERBUND AG, www.verbund.com Seite24.4.2018 11Martin.Schumacher@verbund.com, Twitter: @mschuApex

Debugging

VSCode

VSCodePer Wizard Chrome als

Debugger eintragen

© VERBUND AG, www.verbund.com Seite24.4.2018 12Martin.Schumacher@verbund.com, Twitter: @mschuApex

VSCode

© VERBUND AG, www.verbund.com Seite24.4.2018 13Martin.Schumacher@verbund.com, Twitter: @mschuApex

VSCode

© VERBUND AG, www.verbund.com Seite24.4.2018 14Martin.Schumacher@verbund.com, Twitter: @mschuApex

Einbau React in Apex

Einbau der React Komponente in Apex

Einmal auf Seite per DIV ID

Mehrmals per DIV class

© VERBUND AG, www.verbund.com Seite24.4.2018 15Martin.Schumacher@verbund.com, Twitter: @mschuApex

Einbau React in Apex

Einbau der React Komponente in Apex

Einmal auf Seite per DIV ID

Mehrmals per DIV class

© VERBUND AG, www.verbund.com Seite24.4.2018 16Martin.Schumacher@verbund.com, Twitter: @mschuApex

Einbau React in Apex

© VERBUND AG, www.verbund.com Seite24.4.2018 17Martin.Schumacher@verbund.com, Twitter: @mschuApex

Einbau React in Apex

Kommunikation zwischen Apex und React

Apex übergibt an React:

Über Attribute der DIV beim Rendern

© VERBUND AG, www.verbund.com Seite24.4.2018 18Martin.Schumacher@verbund.com, Twitter: @mschuApex

Einbau React in Apex

Kommunikation zwischen Apex und React

React liest und schreibt aus Apex:

Über die $v und $s Funktionen von Apex

© VERBUND AG, www.verbund.com Seite24.4.2018 19Martin.Schumacher@verbund.com, Twitter: @mschuApex

Einbau React in Apex

Kommunikation zwischen Apex und React

Apex ruft eine Funktion von React auf:

© VERBUND AG, www.verbund.com Seite24.4.2018 20Martin.Schumacher@verbund.com, Twitter: @mschuApex

Einbau React in Apex

Kommunikation zwischen Apex und React

Apex ruft eine Funktion von React auf:

Direkt

© VERBUND AG, www.verbund.com Seite24.4.2018 21Martin.Schumacher@verbund.com, Twitter: @mschuApex

Einbau React in Apex

Kommunikation zwischen Apex und React

Apex ruft eine Funktion von React auf:

Über Events und Eventhandler

© VERBUND AG, www.verbund.com Seite24.4.2018 22Martin.Schumacher@verbund.com, Twitter: @mschuApex

Einbau React in Apex

Kommunikation zwischen Apex und React

Apex ruft eine Funktion von React auf:

Direkt oder über Events und Eventhandler

Direkter Aufruf schnell gemacht,

Events sind die bessere Lösung,

wenn sie für mehrere Komponenten

verwendet werden können

© VERBUND AG, www.verbund.com Seite24.4.2018 23Martin.Schumacher@verbund.com, Twitter: @mschuApex

Apex Komponenten in React nachbauen

Apex Komponenten in React nachbauen

1. Apex Seite als Mockup erstellen

2. Apex Html analysieren

3. React Komponenten erstellen,

die das HTML von Apex nachbauen

4. Komponenten mit Properties (Label, …) versehen

5. State liegt in der obersten App-Komponente

© VERBUND AG, www.verbund.com Seite

6. Change Events rufen mittels Props übergebene

Funktionen der obersten Komponente auf

7. State wird über diese Funktionen geändert

8. React holt sich Detaildaten über REST Calls

9. Apex übernimmt die Daten von React in Hidden Fields

24.4.2018 24Martin.Schumacher@verbund.com, Twitter: @mschuApex

Apex Komponenten in React nachbauen

Apex Komponenten in React nachbauen

© VERBUND AG, www.verbund.com Seite

Blick in den CodeApex React Komponenten

24.4.2018 25Martin.Schumacher@verbund.com, Twitter: @mschuApex

© VERBUND AG, www.verbund.com Seite

CodebeispielApexButton.js

24.4.2018 26Martin.Schumacher@verbund.com, Twitter: @mschuApex