Toolverse
All skills

asyncredux-persistence

by marcglasberg

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

Quick info

Category
Frontend

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

  1. 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.

  2. 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.

  3. 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().

  4. Przekaż instancję persistora do konstruktora Store, ustawiając parametr persistor. Store automatycznie będzie wywoływać persistDifference() po każdej zmianie stanu.

  5. 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.

  6. Wznów i wstrzymaj persistence w odpowiednich punktach cyklu życia aplikacji, np. onPause() i onResume(), aby uniknąć zbędnych operacji dyskowych w tle.

Related skills