Utilizziamo i cookie per migliorare la tua esperienza sul sito
CodeWorlds

Projekt: System Zasobów NOVA LAB

Czas zastosować całą wiedzę o Pinia w jednym projekcie! Zbudujesz kompletny system zarządzania zasobami stacji NOVA LAB, który wykorzystuje:

  • Store z state - przechowywanie danych o zasobach (tlen, woda, energia)
  • Getters - wyliczanie statusów, alertów, statystyk
  • Actions - operacje CRUD, zużycie zasobów, alarmy
  • Kompozycja stores - resource store + alert store
  • $subscribe - monitorowanie zmian

Architektura projektu

1stores/
2├── resources.js     # Zasoby stacji (state, getters, actions)
3└── alerts.js        # System alertów (subscribe do resources)

Przepływ danych

1ResourceStore (state: oxygen, water, energy)
2  ├── getters → statusLevel, criticalResources, summary
3  ├── actions → consume(), refill(), emergencyProtocol()
4  └── $subscribe → AlertStore.checkLevels()
5
6AlertStore (state: alerts)
7  ├── getters → activeAlerts, criticalCount
8  └── actions → addAlert(), dismissAlert()

Zadanie

Przeanalizuj działający system w edytorze. Zwróć uwagę na:

  1. ResourceStore - jak state, getters i actions współpracują
  2. AlertStore - jak jeden store reaguje na zmiany w drugim
  3. Komponent App - jak storeToRefs i actions są używane w template
  4. $subscribe - automatyczne tworzenie alertów przy niskim poziomie zasobów

Kluczowe wzorce:

  • Composition API style z
    ref()
    i
    computed()
  • Asynchroniczne actions z try/catch/finally
  • Store composition - resource store wywołuje alert store
  • storeToRefs
    do reaktywnej destrukturyzacji
  • $patch
    do grupowej aktualizacji state
Vai a CodeWorlds