Właściwie badam wzór strumienia i jest coś, czego nie rozumiem na temat sklepów .
Czym one są dokładnie?
Przeczytałem wiele artykułów i wydaje się, że dotyczy to domeny.
Czy to oznacza, że jest to „abstrakcyjna” część związana z wywołaniami interfejsu API lub wywołaniami backendowymi?
To nie jest dla mnie bardzo jasne.
Edycja: Czy może to być to samo, co fabryka kątowa? Pobieranie zdalnych danych, wykonywanie zadania biznesowego lub przechowywanie niektórych stanów aplikacji (na przykład bieżący użytkownik podłączony)?
design-patterns
architecture
facebook
reactjs
mfrachet
źródło
źródło
Odpowiedzi:
Ok, pozwól, że wyjaśnię ci krok po kroku
1 Co to jest Flux?
Nie bez powodu nazywają to Flux.
Implementacje Fluxa
Czat z Fluxem
Reakcja : Hej, ktoś kliknął ten przycisk „Zapisz kurs”.
Działanie : Dzięki React! Zarejestrowałem twórcę akcji w dyspozytorze, więc dyspozytor powinien zadbać o powiadomienie wszystkich sklepów, które się nim zajmują.
Dyspozytor : pokażę, komu zależy na uratowaniu kursu. Ach! Wygląda na to, że sklep zarejestrował u mnie oddzwonienie, więc dam jej znać.
Sklep : Hi dispatcher! Dziękuję za aktualizację! Zaktualizuję moje dane o przesłany ładunek. Następnie wyemituję wydarzenie dla komponentów React, które są dla nich ważne.
Reaguj : Ooo! Błyszczące nowe dane ze sklepu! Zaktualizuję interfejs, aby to odzwierciedlić!
Flux API
register (funkcja callback) - „Hej, dyspozytorze, uruchom mnie, gdy zdarzają się akcje. -Sklep"
unregister (id łańcucha) - „Hej, dyspozytorze, przestań się martwić o tę akcję. -Sklep"
waitFor (identyfikatory tablic) - „Najpierw zaktualizuj ten sklep. -Sklep"
dispatch (ładunek obiektu) - „Hej, dyspozytorze, powiedz sklepom o tej akcji. -Akcja"
isDispatching () - „Jestem teraz zajęty wysyłaniem wywołań zwrotnych.”
więc pytanie nasuwa się w naszym umyśle
Nie do końca.
Różni się na dwa sposoby:
1. Każdy ładunek jest wysyłany do wszystkich zarejestrowanych połączeń zwrotnych.
2. Połączenia zwrotne mogą czekać na inne połączenia zwrotne
Podsumowanie
Strumień jest wzorcem dla jednokierunkowego przepływu danych Akcje obudowują zdarzenia Dyspozytor jest centralnym centrum przechowującym wywołania zwrotne Sklepy przechowujące stan aplikacji Wiele implementacji
źródło
Patrząc na prosty przykład ( https://github.com/facebook/flux/tree/master/examples/flux-todomvc/ ): „sklepy zarządzają stanem aplikacji dla określonej domeny w aplikacji.” Oznacza to, że zawierają dane o stanie aspektu aplikacji i cały kod do jej zmiany. Ilekroć pojawi się nowa aktualizacja od Dyspozytora, wszystkie Sklepy ją widzą, decydują, w jaki sposób zaktualizować swoje dane w odpowiedzi, a następnie powiadamiają Widoki o zmianie danych. W przykładach Sklepy zawierają takie rzeczy, jak „niewidoczna lista wątków” (gdzie Dyspozytor informuje ich o nadejściu nowej wiadomości lub przeczytaniu starej, a Widoki wyświetlają wątki wiadomości użytkownikowi) oraz „bieżący czas odtwarzania i stan."
Mówiąc bardziej technicznie: są to pośrednia warstwa struktury, która rejestruje wywołania zwrotne w programie Dispatcher w celu otrzymywania aktualizacji, a następnie powiadamia Widoki, gdy zmienia się stan danych. (Widoki mogą następnie wysyłać akcje z powrotem do Dyspozytora.) Zaimplementowano abstrakcyjny interfejs, w którym każdy Sklep rejestruje wywołanie zwrotne w Dyspozytorze i transmituje zdarzenia do Widoku, ale wydaje się, że każdy Sklep reprezentuje konkretną domenę w konkretny sposób. (Czy są kontrprzykłady?)
źródło
Magazyny to obszary kodu, które przechowują stan aplikacji i złożoną logikę. Powodem jest to, że wiele widoków prawdopodobnie będzie używać tych samych danych, ale wyświetla je w inny sposób lub wyświetla niektóre, ale nie wszystkie dane dla określonej domeny. Na przykład użytkownik loguje się, a Ty otrzymujesz jego imię, nazwisko, adres e-mail, zdjęcie, miejscowość, numer adresu, numer telefonu itp. Informacje te są wyświetlane w osobnych widokach. Zamiast powielać dane między widokami, możemy użyć jednego sklepu o nazwie UserStore, który przechowuje dane dla użytkownika. Upraszcza to system, dając „jedno miejsce na zmianę”, ilekroć logika lub przechowywane dane muszą zostać zmienione. Istnieje wiele innych powodów, dla których warto korzystać ze Sklepu, ale to chyba najbardziej oczywisty.
źródło