Come progettare l'albero degli stati usando redux?

0

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:

  1. 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)
  2. 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ù:

  1. Sto sviluppando in Angular2 (Non c'è tag per Angular2)
  2. Condividi le tue fonti delle tue risposte, se esistono.

Grazie!

    
posta Stav Alfi 08.09.2016 - 23:56
fonte

0 risposte

Leggi altre domande sui tag