2016-03-25 41 views
9

ReactJS e Redux offrono un nuovo paradigma per quanto riguarda lo sviluppo del front end delle applicazioni. Entrambi hanno API relativamente semplici e dopo aver trascorso un po 'di tempo sono abbastanza facili da capire da un punto di vista tecnico. Ma dal punto di vista del design, non sono stato in grado di trovare raccomandazioni sulle migliori pratiche o insidie.Come progettare negozi e azioni Redux?

Dove posso trovare consigli o consigli su come progettare il mio negozio Redux globale? Mantenere l'intero stato di un'applicazione in un negozio globale sembra che potrebbe diventare poco pratico. Cosa dovrei essere sicuro di evitare nel farlo? Che dire delle azioni che modificano lo stato globale? È meglio fare meno azioni che possono fare cose diverse sulla base dei dati di azione o di molte azioni più specifiche?

risposta

8

Questa è una grande domanda, ma è un po 'difficile rispondere in modo tangibile perché gran parte di essa è una domanda "dipende". Ma, consiglio vivamente di dare un'occhiata approfondita ai documenti redux.js.org. Ci sono un sacco di piccoli elementi di saggezza in merito ai suggerimenti per modellare un'API o ridurre la duplicazione o la scomposizione generale.

Inoltre, mi piacerebbe aggiungere alcuni consigli generali:

  • di solito non si bisogno stato abbastanza spesso come si potrebbe pensare. Quindi alcune cose possono essere realizzate con più oggetti di scena e meno stato di archiviazione
  • raggruppare le cose in "argomenti" più grandi può spesso aiutare l'organizzazione dei dati a livello di negozio; pertanto potresti fornire proprietà di livello superiore nello store per un determinato utente, auth e qualsiasi ulteriore "argomento" verrà raggruppato nello stesso modo.
  • a volte, è possibile creare strutture di stato un po 'più dettagliate, ma il compromesso è la prevedibilità e una maggiore semplicità generale. Ancora una vittoria su MVC o pazzia a 2 vie
  • ultimo, come punto minore, lo stato "globale" non deve essere così globale. In un certo senso, un singolo albero di stato significa che tutto lo stato è "globale" (o almeno unificato), ma se non esporti lo store a ogni singolo componente, non è realmente globale. I componenti ben disaccoppiati faranno pensare ai dati che fluiscono da IMO più semplici e le cose non devono essere "globali", se questo ha senso.

Spero che questo aiuti un po '!

Consulta anche:

+1

Buona risposta. A tal fine: ho una raccolta di collegamenti alle migliori pratiche e linee guida React/Redux all'indirizzo https://github.com/markerikson/react-redux-links/blob/master/tips-and-best-practices .md, e credo che alcuni di questi discutano della gestione dello stato. – markerikson

+0

aggiunto alla risposta – markthethomas

+0

@markthethomas puoi aiutarmi con il seguente problema http://stackoverflow.com/questions/36211739/invariant-violation-could-not-find-store-in-either-the-context-or-props -of-c/36214384? noredirect = 1 # comment60079395_36214384 –

Problemi correlati