Negli ultimi giorni ho cercato una documentazione su come e quando è meglio usare redux e come progettare l'albero degli stati.
La mia ricerca si è conclusa con la conclusione che non esiste una risposta al curriculum. Poi mi sono imbattuto in questa risposta in github in quel modo da petehunt (la risposta è intesa per il flusso). La sua risposta è quasi univoca:
I think the use of flux is justified when two conditions are met:
- You have a piece of data that needs to be used in multiple places in your app, and passing it via props makes your components break the single-responsibility principle (i.e. makes their interface make less sense)
- There are multiple independent actors (generally, the server and the end-user) that may mutate that data.
La mia scarsa conoscenza sull'argomento mi ha reso difficile capire perché la prima condizione è legata alla domanda.
Condividi la tua opinione su questo e, se possibile, collega la tua risposta al seguente esempio:
Una semplice app che ha un componente di accesso e un componente di visualizzazione profilo-dettagli. La mia app parlerà con un server per la funzionalità di accesso.
Il modo più semplice per progettare l'albero di stato è:
{
connectedUser: {
connectedUserID:String (There could be much more details here)
}
serverStatus: String (connected/connecting/disconnected),
languageID: String
}
Il problema è che ogni progetto spezzerà l'unica fonte di verità. Ad esempio, è possibile memorizzare lo stato del login (fail, caricamento, successo), il numero di tentativi di accesso, il profilo che viene visualizzato in questo momento. Il punto è che questa lista non sarà mai finita e, in un modo o nell'altro, alcuni dati saranno memorizzati nel componente!
Come si può sapere cosa è meglio inserire nell'albero dello stato e cosa conservare nel componente di accesso ed esportarlo in altri componenti?
Alcuni dettagli e richieste in più:
- Sto sviluppando in Angular2 (Non c'è tag per Angular2)
- Condividi le tue fonti delle tue risposte, se esistono.
Grazie!