/ / Angular 2 Redux initialState i interfejs initialState - angular, redux, ngrx

Angular 2 Redux initialState i interfejs initialState - angle, redux, ngrx

Właśnie zaczynam się uczyć o architekturze Redux (z Angular 2).

Czy dobrze to rozumiem wszystko wchodzi w jeden Obiekt, który określa stan całej aplikacji?

Jeśli tak, powiedz, że chcę zbudować średniej wielkości aplikację, taką jak panel administracyjny i nie znam jeszcze wszystkich właściwości / stanów.

Odpowiedzi:

1 dla odpowiedzi № 1

Czy dobrze to rozumiem wszystko wchodzi w jeden Obiekt, który określa stan całej aplikacji?

To nie jest całkowicie poprawne. - To jest technicznie możliwe, ale nie zalecane.

Dane są zazwyczaj agregowane w mniejsze fragmenty z zależnościami semantycznymi reducers - jeśli spojrzysz na ngrx-example-app - masz następujące reducers (możesz do nich zadzwonić „pod-państwa”):

  • książki -> zawiera wszystko związane z książką
  • kolekcje -> zawiera wszystko związane z gromadzeniem książek
  • układ -> wszystko związane z układem (jeśli panel boczny jest otwarty lub zamknięty)
  • Szukaj -> wszystko związane z wyszukiwaniem

Teraz technicznie każdy reducer jest umieszczany w globalnym obiekcie magazynu (na wypadek, gdybyś miał na myśli to przezjeden Object ”), ale to tylko dla wygody reducer musi być zbudowany jako „samodzielny komponent” bez wiedzy innych reducers i stwierdza.

Podsumowując: użyj wielu reducers, nie jeden duży.

[...] powiedz, że chcę zbudować średniej wielkości aplikację, taką jak panel administracyjny i nie znam jeszcze wszystkich właściwości / stanów.

Zależy to od typowej zawartości aplikacji reducers dla panelu administracyjnego może być:

  • użytkowników -> dane użytkownika
  • konfiguracja -> ogólne dane związane z konfiguracją
  • wsparcie -> np. na prośby o wsparcie od użytkowników
  • układ -> rzeczy związane z układem

Teraz to jest po prostu jeden sposób definiowania reduktorów, jest ich mnóstwoaplikacji, w których lepiej nie dzielić reduktorów na logikę biznesową, ale według innych kryteriów. ngrx to tylko narzędzie - będziesz nadal musiał myśleć!

O aktualizowaniu interface i initialState, Nie widzę powodu, dla którego miałoby to stanowić problem - po prostu dodaj nowe pola, zaimplementuj reducer-cases a ty „skończyłeś (z implementacji wyświetlacza w niektórych komponentach itp.).