TanStack Pacer ist eine Bibliothek, die sich auf die Bereitstellung hochwertiger Hilfsmittel zur Steuerung der Ausführungszeit von Funktionen in Ihren Anwendungen konzentriert. Obwohl ähnliche Hilfsmittel anderswo existieren, bemühen wir uns, alle wichtigen Details richtig zu machen – einschließlich Typsicherheit, Tree-Shaking und einer konsistenten und intuitiven API. Indem wir uns auf diese Grundlagen konzentrieren und sie auf eine framework-agnostische Weise verfügbar machen, hoffen wir, diese Hilfsmittel und Muster in Ihren Anwendungen weiter zu verbreiten. Eine ordnungsgemäße Ausführungssteuerung wird in der Anwendungsentwicklung oft vernachlässigt, was zu Leistungsproblemen, Race Conditions und schlechten Benutzererlebnissen führt, die hätten vermieden werden können. TanStack Pacer hilft Ihnen, diese kritischen Muster von Anfang an richtig zu implementieren!
Wichtig
TanStack Pacer befindet sich derzeit im Alpha-Stadium und seine API kann sich ändern.
Der Umfang dieser Bibliothek kann wachsen, aber wir hoffen, die Bundle-Größe jedes einzelnen Hilfsmittels schlank und fokussiert zu halten.
Viele der Ideen (und des Codes) für TanStack Pacer sind nicht neu. Tatsächlich leben viele dieser Hilfsmittel seit einiger Zeit in anderen TanStack-Bibliotheken. Wir haben Code aus TanStack Query, Router, Form und sogar aus Tanners ursprünglicher Swimmer-Bibliothek extrahiert. Dann haben wir diese Hilfsmittel bereinigt, einige Lücken gefüllt und sie als eigenständige Bibliothek veröffentlicht.
TanStack Pacer ist derzeit hauptsächlich eine reine Client-Side-Bibliothek, aber sie ist so konzipiert, dass sie potenziell auch auf der Server-Seite verwendet werden kann.
Debouncing
Verzögern Sie die Ausführung, bis nach einer Inaktivitätsperiode, wenn Sie nur an der letzten Ausführung in einer Sequenz interessiert sind.
Synchrone oder asynchrone Debounce-Hilfsmittel mit Promise-Unterstützung und Fehlerbehandlung
Steuerung von Leading-, Trailing- und Enabled-Optionen
Throttling
Begrenzen Sie sanft die Rate, mit der eine Funktion ausgelöst werden kann
Synchrone oder asynchrone Throttling-Hilfsmittel mit Promise-Unterstützung und Fehlerbehandlung
Steuerung von Leading-, Trailing- und Enabled-Optionen.
Ratenbegrenzung
Begrenzen Sie die Rate, mit der eine Funktion über einen bestimmten Zeitraum ausgelöst werden kann
Synchrone oder asynchrone Ratenbegrenzungs-Hilfsmittel mit Promise-Unterstützung und Fehlerbehandlung
Fixed- oder Sliding-Window-Varianten der Ratenbegrenzung
Queuing
Stellen Sie Funktionen in eine Warteschlange, um sie in einer bestimmten Reihenfolge auszuführen
Wählen Sie aus FIFO-, LIFO- und Prioritätswarteschlangen-Implementierungen
Steuern Sie die Verarbeitungsgeschwindigkeit mit konfigurierbaren Wartezeiten oder Ratenbegrenzungen
Verwalten Sie die Warteschlangenausführung mit Start-/Stopp-Funktionen
Lassen Sie Elemente nach einer konfigurierbaren Dauer aus der Warteschlange verfallen
Batching
Fassen Sie mehrere Operationen in größere Batches zusammen, um die Gesamtzahl der Hin- und Rückoperationen zu reduzieren
Batching nach Zeitintervall, Batch-Größe, je nachdem, was zuerst eintritt, oder einer benutzerdefinierten Bedingung, um Batch-Ausführungen auszulösen
Asynchrone oder synchrone Varianten
Wählen Sie zwischen synchronen und asynchronen Versionen jedes Hilfsmittels
Optionale Fehler-, Erfolgs- und Settled-Behandlung für asynchrone Varianten
Zustandsverwaltung
Verwendet TanStack Store im Hintergrund für die Zustandsverwaltung mit fein granularer Reaktivität
Einfache Integration mit Ihrer bevorzugten Zustandsverwaltungsbibliothek
Persistieren Sie den Zustand im lokalen Speicher oder Sitzungsspeicher für einige Hilfsmittel wie Ratenbegrenzung und Queuing
Praktische Hooks
Reduzieren Sie Boilerplate-Code mit vorgefertigten Hooks wie useDebouncedCallback, useThrottledValue und useQueuedState und mehr.
Mehrere Abstraktionsebenen zur Auswahl, je nach Anwendungsfall.
Funktioniert mit den Standard-Zustandsverwaltungslösungen jedes Frameworks oder mit jeder benutzerdefinierten Zustandsverwaltungsbibliothek Ihrer Wahl.
Typsicherheit
Vollständige Typsicherheit mit TypeScript, die sicherstellt, dass Ihre Funktionen immer mit den richtigen Argumenten aufgerufen werden
Generics für flexible und wiederverwendbare Hilfsmittel
Framework-Adapter
React, Solid und mehr
Tree Shaking
Wir sorgen natürlich standardmäßig für korrektes Tree-Shaking für Ihre Anwendungen, bieten aber auch tiefere Importe für jedes Hilfsmittel an, was es einfacher macht, diese Hilfsmittel in Ihre Bibliotheken einzubetten, ohne die Bundle-Phobie-Berichte Ihrer Bibliothek zu erhöhen.
Jedes Hilfsmittel ist so konzipiert, dass es auf eine bestimmte Weise verwendet werden kann, und jedes Hilfsmittel hat sein eigenes einzigartiges Verhalten.
Sehen Sie, wie sich jedes Hilfsmittel mit diesem interaktiven Vergleich verhält. Bewegen Sie den Schieberegler, um die Unterschiede zwischen Debouncing, Throttling, Ratenbegrenzung, Queuing und Batching zu beobachten