Toolverse
Wszystkie skille

gpui-entity

autor: longbridge

Bezpieczne zarządzanie stanem komponentów w GPUI z obsługą operacji asynchronicznych

Instalacja

Wybierz klienta i sklonuj repozytorium do odpowiedniego katalogu skilli.

Instalacja

Szybkie info

Kategoria
Frontend
Wyświetlenia
18

O skillu

Skill do pracy z encjami i stanem aplikacji w GPUI. Umożliwia bezpieczny dostęp do stanu współdzielonego między komponentami, obsługę operacji asynchronicznych z aktualizacją stanu oraz implementację reaktywnych wzorców. Entity zapewnia bezpieczny dostęp do stanu aplikacji w środowisku wielowątkowym — czytasz stan za pomocą read(), aktualizujesz go update(), a słabe referencje (WeakEntity) chronią przed wyciekami pamięci w callbackach i zamknięciach.

Jak używać

  1. Zainstaluj skill w swoim projekcie GPUI, dodając go do konfiguracji Claude/Copilot dla tego repozytorium.
  2. Utwórz encję za pomocą cx.new(), przekazując inicjalizator stanu — na przykład cx.new(|cx| Counter { count: 0 }) tworzy encję licznika.
  3. Odczytaj stan encji za pomocą entity.read(cx), które zwraca immutable referencję do stanu, lub entity.read_with(cx, |state, cx| ...), jeśli chcesz przetworzyć dane w zamknięciu.
  4. Aktualizuj stan za pomocą entity.update(cx, |state, cx| { ... }), modyfikując pole stanu wewnątrz zamknięcia i wywołując cx.notify(), aby wyzwolić przerysowanie komponentu.
  5. Dla callbacków i zamknięć, które mogą przetrwać dłużej niż encja, utwórz słabą referencję za pomocą entity.downgrade(), która zwraca WeakEntity — ta nie zapobiega czyszczeniu i zwraca Result, bezpiecznie obsługując przypadek, gdy encja została już usunięta.
  6. Współdziel encję między komponentami, przekazując ją jako pole struktury komponentu — każdy komponent może niezależnie czytać i aktualizować ten sam stan, a cx.notify() zapewnia, że wszystkie komponenty się przerysują.

Podobne skille