- Im Unterschied zu bestehenden Tools (
Profiler, Why Did You Render?, React Devtools) sind kaum Codeänderungen nötig, und es bietet einfache visuelle Hinweise sowie eine programmierbare API
- Erkennt und markiert Render-Vorgänge, die Leistungsprobleme verursachen, automatisch und zeigt genau, welche Komponenten angepasst werden müssen
- Da es schlichtes JavaScript ist, kann es überall eingebunden werden: per Script-Tag, NPM usw.
Warum React Scan nötig ist
- React zu optimieren kann knifflig sein
- Komponenten-Props werden absichtlich per Referenz statt nach Wert verglichen. Dadurch werden die Kosten der Render-Ausführung reduziert
- Das führt jedoch leicht dazu, dass versehentlich unnötige Renderings entstehen und die App langsamer wird
- Selbst in großen Produktions-Apps mit Hunderten von Entwicklern ist Optimierung oft schwierig (Beispiele: GitHub, Twitter, Instagram).
Was React Scan besser macht als React Devtools
- Einschränkungen von React Devtools:
- Als allgemeines Tool konzipiert, kann es unnötige und notwendige Renderings nicht klar unterscheiden.
- Es gibt keine programmierbare API, wodurch die Automatisierung des Performance-Debuggings schwierig ist.
- Persönliche Kritik an der Highlight-Funktion von React Devtools:
- Verzögerte Render-Erkennung: React Devtools verarbeitet Renderings in Batches, daher werden schnell rendernde Komponenten nur einmal pro Sekunde angezeigt.
- Probleme bei der Aktualisierung der Box-Position: Beim Scrollen oder Ändern der Größe wird die Box-Position nicht aktualisiert.
- Keine Anzeige der Render-Anzahl: Es zeigt nicht, wie oft jede Komponente gerendert wurde.
- Schwierige Unterscheidung problematischer Renderings: Um langsame oder ineffiziente Renderings zu erkennen, müssen Komponenten manuell untersucht werden.
- Schwache User Experience: Das Menü ist versteckt, wodurch das Ein- und Ausschalten der Funktion umständlich ist. Die UI ist nicht für Performance-Debugging ausgelegt.
- Keine Programm-API: Nicht nutzbar zur Automatisierung von Debugging oder für fortgeschrittene Aufgaben.
- Auf Chrome-Erweiterungen beschränkt: Nicht überall im Web nutzbar und abhängig von Browser-Erweiterungen.
- Subjektive Designprobleme: Die Linien der Boxen wirken unscharf und insgesamt träge.
- Was React Scan unterscheidet:
- Ein spezialisiertes Tool für Performance-Debugging, das unnötige Renderings klar identifiziert.
- Auf allen Plattformen nutzbar (Web, Script, npm) und auf eine optimale Developer Experience ausgelegt.
- Mit einer ambitionierten Feature-Roadmap bietet es Potenzial, über React Devtools hinauszugehen.
3 Kommentare
Gut, weil es leicht verständlich ist.
Ein sehr passendes Anwendungsbeispiel
Vielleicht liegt es daran, dass die Demo-App klein ist, aber die Reaktionsgeschwindigkeit ist wirklich hoch.