Close up of female hands while typing on laptop

SharePoint Framework – Client-Side Webparts mit React entwickeln

React ist ein Framework, welches zum Erstellen von Benutzeroberflächen dient. Die Architektur besteht aus Komponenten, welche als Basis für einen modularen und leicht zu verstehenden sowie wieder verwendbaren Frontendcode dient. Gerade in der SharePoint Online Entwicklung bietet es sich an, React als Framework für die Entwicklung von Client-Side Webparts zu verwenden, da es einige Vorteile mit sich bringt:

1. Komponentenarchitektur

Komponenten sind der zentrale Baustein von React. Jede Komponente hat eine render()-Funktion, welche die DOM-Elemente zurück liefert, sodass diese anschließend gerendert werden können. Durch die Verwendung von JSX-Elementen wird ermöglicht, innerhalb der render()-Methode HTML zu schreiben. Das HTML kann allerdings auch außerhalb der Methode in Variablen gespeichert und anschließend in der render()-Methode durch geschweifte Klammern aufgerufen werden. Es gibt fertige Komponenten, welche eingebunden werden können (z.B. Buttons, Spinner) oder aber auch die Möglichkeit, eigene Komponenten zu erstellen. Der einfachste Aufbau einer Komponente mit Konstruktor, welche in dem Fall in Typescript geschrieben wurde, sieht wie folgt aus.

Screenshot Code React Komponente
Abbildung 1: React Komponente

Diese Komponente erhält Properties, welche dieser beim Aufruf übergeben werden. Diese Properties sind read-only und können nun durch Aufruf in geschweiften Klammern gerendert werden. Es können aber auch, wie hier zu sehen ist, Variablen aufgerufen werden.

Die Komponentenarchitektur bietet folgende Vorteile:

Übersichtlichkeit

Durch das Auslagern einzelner Elemente (z.B. Suchfelder, Buttons, Fehlermeldungen) bleibt der Code in der Hauptkomponente übersichtlicher. Funktionalitäten für kleinere Bausteine eines Webparts können in eine eigene Komponente ausgelagert und von dort aus gerendert werden.

Wiederverwendbarkeit einzelner Komponenten

Eine selbst erstellte Komponente kann innerhalb des Projekts an jeder beliebigen Stelle wiederverwendet werden. Somit spart man sich nicht nur einige Zeilen Code, welche immer wieder kopiert/neu geschrieben werden müssten, sondern stellt auch sicher, dass ähnliche Elemente (z.B. Dialogfenster, welche sich nur vom Inhalt unterscheiden) auch dasselbe Aussehen und Verhalten haben.

2. Virtueller DOM

Das ständige Ändern des DOM-Objektes führt oftmals zu Performance-Problemen, vor allem wenn an vielen verschiedenen Stellen Änderungen vorgenommen werden müssen oder, um dies zu vermeiden, gleich der ganze DOM ausgetauscht wird. Durch die Nutzung eines virtuellen DOM-Objektes durch React werden diese Probleme jedoch bei Seite geschafft. Die render()-Funktionen passen hierbei nicht den tatsächlichen DOM an, sondern erstellen eine Repräsentation des DOMs. Somit kann diese mit einer früheren Version des DOMs verglichen werden, um minimale Änderungen zu bestimmen, die auf dem echten DOM vorgenommen werden müssen.

3. Komponenten-Lifecycle

Jede React-Komponente hat ihren eigenen Lifecycle. Dieser lässt sich wie folgt Darstellen:

Grafik Lifecycle einer React-Komponente
Abbildung 2: Lifecycle einer React-Komponente

Wie in der Abbildung zu sehen ist, wird bei Erstellung der Komponente (Mounting-Phase) der Konstruktor erstellt, die Properties werden zur Verfügung gestellt und es wird gerendert. Anschließend wird die zur Verfügung stehende Methode „componentDidMount()“ ausgeführt, welche vom Entwickler selbst implementiert werden kann. Sie eignet sich sehr gut, um Daten anzufragen, da die render()-Methode nicht unterbrochen wird, die Daten dennoch zum frühestmöglichen Zeitpunkt geladen werden. Ändern sich Properties oder der State der Komponente beginnt die Updating-Phase, welche ähnlich zur Mounting-Phase abläuft. Allerdings wird der Konstruktor nicht erneut ausgeführt, stattdessen stehen jedoch Methoden zur Verfügung, welche entscheiden lassen, ob die Updating-Phase überhaupt weiter ausgeführt oder abgebrochen werden soll. Zudem gibt es die Möglichkeit, einen Snapshot der alten Version zu erstellen. In der Unmounting-Phase gibt es die Möglichkeit vor dem Schließen der Komponente in der „componentWillUnmount()“-Methode letzte Schritte zu implementieren. Durch die zur Verfügung stehenden Methoden erhält der Benutzer zu jeder Phase die Möglichkeit, in diese einzugreifen und den Lifecycle zu beeinflussen. Er kann entscheiden, was passiert sobald die Komponente existiert („componentDidMount()“), sich Properties oder der State ändern („shouldComponentUpdate()“/„componentDidUpdate()“) oder die Komponente geschlossen (“componentWillUnmount()”) wird.

4. Unterstützung von Yeoman zur Erstellung von Webparts

Mithilfe von Visual Studio Code, Node.js, Gulp und Yeoman lassen sich ganz einfach über die Konsole SharePoint Client-Side Webparts erstellen. Yeoman bietet einen SharePoint-Generator, welcher folgendem Befehl installiert wird:

Screenshot Code Installieren des SharePoint Generators
Abbildung 3: Installieren des SharePoint Generators

Mit dem Befehl “yo @microsoft/sharepoint” kann anschließend ein Webpart erstellt werden. Der Entwickler wird nun nach dem Namen der Solution sowie des Webparts gefragt, anschließend kann er auswählen ob er React, Knockout oder kein Framework verwenden möchte. Der SharePoint Generator erstellt nun alle benötigten Dateien sowie einen „Hello World“-Webpart. Somit muss sich der Entwickler hierbei um nichts weiteres kümmern und kann direkt mit der Implementierung seines Webparts beginnen. Zum Testen steht ihm die SharePoint Workbench zur Verfügung.

Die SharePoint Workbench ist eine Designoberfläche für Entwickler und bietet eine Vorschau seines Webparts auf einem lokalen Webserver. Durch die Eingabe folgender Befehle öffnet sich im Browser die lokale Workbench:

Screenshot Code Workbench starten
Abbildung 4: Workbench starten

Hier können nun die im Projekt erstellten Webparts zur Seite hinzugefügt und getestet werden. Somit muss der Entwickler die Solution nicht direkt in SharePoint deployen, sondern kann erstmal lokal testen. Auch wenn man als Entwickler stets unter realistischen Bedingungen in SharePoint selbst testen sollte, ist es manchmal ganz nützlich, diese lokale Test-Seite zur Verfügung zu haben. Im Folgenden gibt es ein Beispiel für eine Workbench:

Screenshot Workbench
Abbildung 5: Workbench

Fazit:

React erleichtert einem nicht nur die Arbeit während der Entwicklung von SharePoint Client-Side Webparts, sondern hilft dabei, sauberen und leicht wartbaren Code zu schreiben.

Quellen:

https://reactjs.de/artikel/react-tutorial-deutsch/
https://docs.microsoft.com/de-de/sharepoint/dev/spfx/web-parts/get-started/build-a-hello-world-web-part
https://www.google.de/search?q=react+lifecycle&safe=active&rlz=1C1CHBF_deDE806DE806&tbm=isch&source=iu&ictx=1&fir=oYk_iq7JSEJ5iM%253A%252CQ6JFIsD-oYVm-M%252C_&usg=AI4_-kTVxStAuHI2U6_xULCr9YrWk2o7g&sa=X&ved=2ahUKEwiykISLtsTeAhXGDSwKHd2qDjcQ9QEwAnoECAQQBA#imgrc=oYk_iq7JSEJ5iM:

novaCapta Intranet Angebote
Leistung

Unsere Intranetangebote auf SharePoint Basis

In der digitalen Arbeitswelt sind effiziente Kommunikationsplattformen entscheidend für den Unternehmenserfolg. SharePoint Online bietet die perfekte Basis für leistungsstarke Intranets.

Vogelperspektive Laptop Tastaturen
Training_Master

React - Grundlagen

Vogelperspektive Laptop Tastaturen
Training_Anfrage

React - Grundlagen

Für versicherungsmathematische Berechnungen, Projektionen, die Gewinnprüfung, stochastische Modellierung und das Asset-Liability-Management ist ein modernes Framework unverzichtbar. Was muss es im Spannungsfeld gesetzlicher und unternehmerischer Hürden leisten? Und was muss aktuarielle Software mitbringen, wenn sie den Herausforderungen von heute und morgen gerecht werden will?
Blog 13.10.22

Eine Frage des Frameworks

Die Digitalisierung macht auch vor der Veränderung aktuarieller Tätigkeiten nicht Halt. Hinzu kommen längst beschlossene gesetzliche Vorgaben, die u.a. IT-Abteilungen vor Herausforderungen stellen.

Blog 30.05.24

React Server Components und Next.js

Erfahren Sie mehr über React Server Components und Next.js für effizientes Server Side Rendering in Web-Applikationen. Eine detaillierte Analyse und Implementierungstipps.

Zwei Männer am Smartphone
Leistung

Softwareentwicklung mit Framework-Technologie

Unser Mittelweg bei der Einführung neuer Software: Business Productivity Framework. Damit kombinieren wir die Vorteile von Individual- und Standardsoftware und sorgen für eine maßgeschneiderte Lösung.

Blog 16.12.20

Das synaigy-Framework Teil 3

Der priorisierte Matchplan ist Grundlage für die in den einzelnen Phasen einzuführenden Systeme. Er ist sozusagen die Übersichtskarte der nun folgenden Schritte in großem Maßstab. Die Karte wird durch die in den nächsten Schritten erstellten Konzepte Stück für Stück höher aufgelöst.

Blog 10.05.20

Das synaigy-Framework Teil 2

Zur Erarbeitung eines kundenindividuellen Matchplans werden verschiedene Werkzeuge aus dem synaigy Methodenkoffer kombiniert. Ein Fokus liegt hierbei auf kreativen Workshops. Hierzu finden sich abteilungsübergreifend Mitarbeiter des Kunden sowie Experten der synaigy zusammen, um Geschäftswissen und Expertenwissen interaktiv zu vereinen.

Blog 07.05.20

Das synaigy-Framework Teil 1

Es ist kurz vor Quartalsende. Der Außendienst verschiedener IT-Dienstleister dreht frei, verfängt sich im mittleren oder gehobenen Management, und schon wird kurzfristig eine neue Software angeschafft, weil sie gerade jetzt so günstig ist und die Fachabteilung ja schon lange Bedarf an IT-Unterstützung angemeldet hat.

Vogelperspektive Laptop Tastaturen
Training_Master

JavaScript Bibiliotheken Frameworks & Tools

Vogelperspektive Laptop Tastaturen
Training_Anfrage

JavaScript Bibiliotheken Frameworks & Tools

Zwei Frauen schauen gemeinsam auf einen Bildschirm
Blog 27.11.18

Tipps und Tricks mit Entity Framework

In diesem Blogbeitrag möchte ich einige Tipps und Tricks rund um Entity Framework mit euch teilen. In allen Beispielen gehen wir vom Code-First Ansatz aus.

Person in grauen Jeans mit Surface-Gerät
Lösung

Enterprise Application Integration Framework

Eine Mischung an unterschiedlichsten Software-Applikationen ist häufig in Unternehmen zu finden. Mit unserem Enterprise Application Integration Framework sorgen Sie für vernetzte Systeme.

Eine Frau, die mit einem Laptop auf einem Stuhl sitzt
Technologie

Microsoft SharePoint

Egal ob On-Prem, SharePoint Online als Teil von Office 365 oder Hybrid: Wir erfüllen alle Ihre individuellen Anforderungen und richten Ihnen SharePoint als moderne Collaboration-Plattform ein.

two colleagues working together it jobs timetoact group
Jobs

(Senior) Projektmanager - Client Success (w/m/d)

synaigy | Dortmund, Köln oder Home Office | Voll- oder Teilzeit & Festanstellung | Ab sofort

novaCapta: Ihr Partner für die digitale Transformation mit Microsoft Technologien
Blog 24.08.15

CQRS in ASP.Net MVC mit Entity Framework

Die Entwicklung von Anwendungen in einem mehrschichtigen Aufbau hat sich etabliert. Design Patterns wie MVC schaffen Lösungen.

Close up shot of female hands typing on laptop
Blog 15.05.17

SharePoint vs. TYPO3 – Sechs Gründe für SharePoint-Intranet

Hier lesen Sie die sechs wichtigsten Argumente, warum Sie Office 365 mit SharePoint für Ihre Intranetlösung gegenüber TYPO3 bevorzugen sollten.

Hands of man using online virtual app on mobile phone. Millennial guy chatting on smartphone, using banking services, reading text message, typing, shopping, making call, browsing internet. Close up
Blog 10.02.16

Produktiver lernen mit SharePoint

Bringt die aktuelle Version der SharePoint-Plattform so viele neue Features mit, es zu einem perfekten Learning Management System zu machen? Wir beleuchten es.

Close up hands of businesswoman typing on laptop keyboard to working and searching business data
Offering

Angebot: SharePoint Migration

Mit unserer Expertise und unseren Tools bringen wir Prozesse und Inhalte sicher und schnell von Quellen wie SharePoint On-Prem, SharePoint Online oder Fileshares auf SharePoint Online oder Teams.

Microsoft 365 Panel der novaCapta
Leistung

Migration von Confluence zu SharePoint

Mit unserem novaCapta Migration Tooling lassen sich Dateien, Spaces, Chats etc. von Atlassian Confluence größtenteils automatisiert in Ihre Microsoft 365 Landschaft migrieren.

Bleiben Sie mit dem TIMETOACT GROUP Newsletter auf dem Laufenden!