/ / flux wiele instancji sklepu - Reagjs, Reagjs-Flux

flux wiele instancji sklepu - reactjs, reactjs-flux

W aplikacji Flux, w której dane są dzielone na segmenty według identyfikatora właściciela, czy powinniśmy używać jednego sklepu, który wewnętrznie dzieli dane na segmenty, czy jednej instancji sklepu na segment?

Na przykład mamy użytkownika aplikacji, który jest trenerem dla wielu sportowców. Każdy trenujący sportowiec ma zero lub więcej treningów, a trener może przeglądać treningi jednego lub więcej sportowców jednocześnie.

Moglibyśmy mieć jeden sklep z treningami dla wszystkich sportowców; sklep musi upewnić się, że wszystkie dane są podzielone na segmenty sportowców, a każda metoda sklepu wymaga parametru sportowiec.

Lub możemy mieć jedną instancję sklepu na identyfikator sportowca. Upraszcza to logikę sklepu i podpisy metod, ale wtedy musimy zarządzać większą liczbą instancji sklepu.

Czy ktoś ma jakieś doświadczenie z tym podejściem? Jakieś zalety lub wady robienia tego w ten czy inny sposób? Lub który sposób jest „sposobem przepływu” i dlaczego?

Odpowiedzi:

8 dla odpowiedzi № 1

Sposób Flux polega na tworzeniu sklepów singleton. Nie są to modele, ponieważ jesteśmy przyzwyczajeni do myślenia o modelach we wzorze MVC w stylu ORM. Sklepy tworzone są tylko w momencie inicjalizacji aplikacji. Zarządzają „domeną” logiki i danych.

Te sklepy singleton rejestrują oddzwonieniedyspozytor. Oddzwonienie jest jedynym sposobem, w jaki dane dostają się do sklepów. Sklepy dostarczają również metody pobierania jako publiczny interfejs API - jedyny sposób, w jaki dane się wydostają. Nie ma seterów. Sklepy są własnym światem, całkowicie kontrolującym swoje dane i zachowanie.

W twoim przypadku brzmi to jak domeny logicznesą sportowcem i treningiem, więc stworzyłbym sklep sportowca i sklep treningowy i utrzymywałbym zbiory tych dwóch rzeczy w odpowiednich sklepach. Mogę sobie wyobrazić, że będziesz miał takich pobierających getWorkoutsByAthleteID(), na przykład.