2016-05-17 42 views
14

Attualmente sono in fase di apprendimento di Redux e ho più o meno capito i concetti di base. Capisco come lavorare con azioni e riduttori e tutto il resto. Quello a cui sto combattendo è capire come progettare correttamente un albero di stato. Vengo informato sui dettagli di ciò che dovrebbe/non dovrebbe essere memorizzato nello stato dell'applicazione, quando è accettabile utilizzare lo stato del componente, il modo migliore per gestire le modifiche dello stato, ecc.progettazione dell'albero di stato di Redux

Ci sono dei buoni tutorial o blog là fuori qualcuno può raccomandare per capire le migliori pratiche di progettazione dello stato?

+3

Io uso un modello di anatre https://github.com/erikras/ducks-modular-redux e mantengo ogni singolo pezzo di stato in redux. Finora ha funzionato bene per me, e in questo modo sono sicuro al 100% da dove provengono i miei stati/errori. – azium

risposta

4

Ci sono molte opinioni diverse su questo. Ecco cosa faccio.

  1. Riduttori - tenere le cose che si occupano con il mio modello di dati (in genere tutto ciò che è in un database), che ha bisogno di essere salvato e utilizzato in seguito o utilizzato attraverso componenti

  2. LocalState (reagire setState) - tratta gli elementi dell'interfaccia utente in un singolo componente relativi all'input e all'interazione dell'utente

Quindi, se dovessi modellare una risposta a questa domanda. negozio Redux avrebbe

store = { 
    session: { token: 'randomUid' } 
    user: { name: 'Austio' } 
    question: { id: 37288070 } 
} 

Quando seleziono la casella di testo per immettere i valori in per creare una risposta a questa domanda è sarebbe handleInput da questa scatola, che setState del answerText.

Quando è handleSubmit per il modulo, vorrei inviare in base al successo qualcosa come NEW_ANSWER con il questionId e la risposta in modo da poterlo archiviare nel negozio per essere utilizzato ovunque sia necessario.

Il mio miglior consiglio è quello di iniziare a programmare cose, è molto difficile trovare i bordi delle preferenze con l'uso di redux/reagire senza.

+1

"LocalState (react setState) - tratta gli elementi ui in un singolo componente correlato all'input dell'utente e all'interazione ..." Ho visto che anche le persone adottano questo approccio, tuttavia, considero decisamente critico anche lo stato, e mettilo nel negozio. forma i dati, quali elementi sono evidenziati, stato del mouse, ecc. - tutto! dibattere su ciò che va osservato nello stato che ho osservato diventa una china scivolosa. può portare a difficoltà e ridotto molto del valore che redux offre a IMHO. è più facile però! – cdaringe

+0

Una prospettiva interessante, in ultima analisi, fa tutto ciò che è più naturale per te, per me la memorizzazione di uno stato locale che non ha importanza in un senso globale rende l'applicazione più difficile da ragionare. Consiglio di controllare cosa pensano gli altri. Anche la mia prospettiva è da un team di altri 8 sviluppatori su un sistema piuttosto grande. Ecco una buona discussione https://github.com/reactjs/redux/issues/1287 – Austio

0

mi raccomando check-out di Dan Abramov (creatore di Redux) tutorial su egghead.io https://egghead.io/courses/getting-started-with-redux

Egli vi porta attraverso la costruzione di una semplice applicazione todo, ma sottolinea in realtà sulle migliori pratiche edilizie Stato in tutto il corso.

Problemi correlati