2016-03-25 15 views
9

ReactJS i Redux oferują nowy paradygmat rozwoju aplikacji. Oba mają stosunkowo proste interfejsy API i po spędzeniu trochę czasu są dość łatwe do uchwycenia z technicznego punktu widzenia. Ale z punktu widzenia projektowania nie mogłem znaleźć zaleceń dotyczących najlepszych praktyk lub pułapek.Jak zaprojektować sklepy i akcje Redux?

Gdzie mogę znaleźć rekomendacje lub porady dotyczące projektowania mojego globalnego sklepu Redux? Utrzymanie całego stanu aplikacji w globalnym sklepie wydaje się być bardzo szybkie. Czego powinienem unikać? A co z działaniami, które modyfikują stan globalny? Czy lepiej wykonać mniej działań, które mogą robić różne rzeczy w oparciu o dane akcji lub o wiele więcej konkretnych działań?

Odpowiedz

8

To jest świetne pytanie, ale trudno jest namacalnie odpowiedzieć, ponieważ tak wiele jest kwestią "to zależy". Ale, bardzo polecam głębsze spojrzenie na dokumenty redux.js.org. Jest tam wiele małych mądrości na temat sugestii dotyczących kształtowania interfejsu API lub ograniczania powielania lub ogólnej nieporęczności.

Dodatkowo Chciałbym dodać kilka ogólnych wskazówek:

  • zwykle nie trzeba stan zupełnie tak często, jak można by pomyśleć. Tak więc niektóre rzeczy można osiągnąć dzięki większej liczbie podpór i mniejszemu sterowaniu sklepem. Grupowanie rzeczy w większe "tematy" może często pomóc w organizacji danych na poziomie sklepu; więc możesz podać właściwości wyższego poziomu w sklepie dla danego użytkownika, auth, a wszelkie inne "tematy" zostaną zgrupowane w ten sam sposób.
  • Czasami można utworzyć nieco bardziej szczegółowe struktury stanu, ale kompromis to przewidywalność i większa ogólna prostota. Nadal wygrywają MVC lub dwukierunkowe szaleństwa
  • jako ostatnie, "globalny" stan wcale nie musi być tak globalny. W pewnym sensie drzewo stanu pojedynczego oznacza, że ​​cały stan jest "globalny" (lub przynajmniej zunifikowany), ale dopóki nie wystawi się sklepu na każdy pojedynczy komponent, nie jest tak naprawdę globalny. Ładnie rozłączone komponenty sprawią, że myślenie o danych płynących z górnej półki będzie łatwiejsze, a rzeczy naprawdę nie muszą być "globalne", jeśli ma to sens.

Mam nadzieję, że trochę pomogło!

Zobacz także:

+1

dobra odpowiedź. W tym celu: mam zestaw linków do najlepszych praktyk i wskazówek dotyczących React/Redux: https://github.com/markerikson/react-redux-links/blob/master/tips-and-best-practices .md, i uważam, że niektórzy z nich dyskutują o zarządzaniu państwem. – markerikson

+0

dodano, aby odpowiedzieć – markthethomas

+0

@markthethomas Czy możesz mi pomóc w poniższym problemie http://stackoverflow.com/questions/36211739/invariant-violation-could-not-find-store-in-either-text-context-or-props -of-c/36214384? noredirect = 1 # comment60079395_36214384 –