asyncredux-persistence
Implement local state persistence using Persistor. Covers creating a custom Persistor class, implementing `readState()`, `persistDifference()`, `deleteState()`, using LocalPersist helper, throttling saves, and pausing/resuming persistence with app lifecycle.
Installation
Pick a client and clone the repository into its skills directory.
Installation
About this skill
Implement local state persistence using Persistor. Covers creating a custom Persistor class, implementing readState(), persistDifference(), deleteState(), using LocalPersist helper, throttling saves, and pausing/resuming persistence with app lifecycle.
How to use
Utwórz klasę dziedziczącą po abstrakcyjnej klasie Persistor
i zaimplementuj wymagane metody: readState() do odczytania zapisanego stanu z dysku, persistDifference() do zapisu zmian (porównując lastPersistedState z newState), oraz deleteState() do usunięcia stanu. W metodzie readState() zwróć zapisany stan lub null, jeśli nie istnieje. W persistDifference() zapisz tylko różnice między stanem poprzednim a nowym, aby zoptymalizować operacje dyskowe.
Podczas inicjalizacji Store'a odczytaj istniejący stan za pomocą persistor.readState(). Jeśli zwróci null, utwórz domyślny stan i zapisz go metodą persistor.saveInitialState().
Przekaż instancję persistora do konstruktora Store
, ustawiając parametr persistor. Store automatycznie będzie wywoływać persistDifference() po każdej zmianie stanu. Skonfiguruj throttle w swoim Persistorze, zwracając Duration (np. Duration(seconds: 2)), aby ograniczyć częstotliwość zapisów na dysk. Zwróć null, aby wyłączyć throttling.
Wznów i wstrzymaj persistence w odpowiednich punktach cyklu życia aplikacji, np. onPause() i onResume(), aby uniknąć zbędnych operacji dyskowych w tle.