2016-03-24 8 views
13

Gestione stato con Reagire soloNon c'è bisogno di stato nei componenti React se si utilizza Redux e React-Redux?

Capisco che se si sta creando un'applicazione utilizzando Reagire solo, si finirà per la gestione di tutta la vostra condizione all'interno di diverse Reagire componenti creati.

stato con Reagire e Redux

Se si decide di utilizzare Redux in combinazione con Reagire, si può poi passare tutto lo stato da ciascuno dei tuoi componenti reagiscono nello stato generale dell'applicazione Redux Delegato. Ogni componente che richiede una porzione dello stato dell'applicazione Redux può quindi connettersi allo stato tramite la funzione connect di React-Redux.

Domanda

questo significa che non è più necessario scrivere alcun Reagire componenti che si occupano di React di state (cioè this.setState) dal React-Redux è connect ing l'Reagire componenti con stato Redux passando i dati in il componente container come props?

+2

Sì. Se devi o meno richiede più discussioni e specifiche sulla tua app. Comunque è sempre bello avere un'unica fonte di verità. – azium

+1

Ancora quando si desidera attenersi solo a React, ma si sta cercando un approccio più leggero per gestire lo stato del componente, è possibile aggiungere una libreria di gestione dello stato come MobX (https://mobxjs.github.io/mobx/). Può aiutarti con lo stato del componente interno (https://medium.com/@mweststrate/3-reasons-why-i-stopped-using-react-setstate-ab73fc67a42e#.5xoga86e9) ma anche lo stato al di fuori del tuo componente. –

risposta

8

Ci sono opinioni diverse su questo, ma la visione generale sembra essere che il redux dovrebbe contenere solo "stato dell'applicazione". I singoli componenti reagiscono come dropdown o modali avranno comunque il loro stato.

C'è ancora un sacco di dibattito su questo, però, controlla questo problema, ad esempio su come gestire i locali dello stato del componente: https://github.com/reactjs/redux/issues/159

Alcuni progetti hanno cominciato ad apparire che stanno cercando di risolvere questo "problema":

+4

Io secondo questo. Sentiamo cosa dice il creatore di Redux :) https://twitter.com/dan_abramov/status/623097205386293248 – dannyjolie

+2

Concordo anch'io: lo stato può essere utile per es. per un componente di input, in cui l'utente può modificare un campo di input, solo aggiornando lo stato in piccoli cicli. Quando lo stato cambia (il contenuto del campo di input) può essere contenuto nel componente small react, senza la necessità che il resto del mondo lo sappia. Dove la necessità di andare a ciclo completo a Redux (probabilmente innescando molti altri metodi) è necessaria solo se l'utente preme enter, ecc. – wintvelt

+0

Sono d'accordo, Redux è uno strumento per raccogliere lo stato globale in un negozio e dovrebbe essere usato come tale solo quando il stato deve essere collegato. – Sequential