React 16.3.0 est sorti et l' API de contexte n'est plus une fonctionnalité expérimentale. Dan Abramov (le créateur de Redux) a écrit un bon commentaire ici à ce sujet, mais cela faisait 2 ans que le contexte était encore une fonctionnalité expérimentale.
Ma question est, à votre avis / expérience, quand dois-je utiliser React Context sur React Redux et vice versa?
javascript
reactjs
redux
react-redux
react-context
Alfrex92
la source
la source
duix
package npm. Ce n'est qu'un simple gestionnaire d'état avec des rappels, vraiment facile à implémenter. Juste pour être clair: je suis le créateur.Réponses:
Car Context n'est plus une fonctionnalité expérimentale et vous pouvez utiliser Context directement dans votre application et sera idéal pour transmettre des données à des composants profondément imbriqués pour lesquels il a été conçu.
Comme Mark Erikson l'a écrit dans son blog :
Redux
est beaucoup plus puissant et fournit un grand nombre de fonctionnalités que leContext Api
ne fournit pas, également comme l'a mentionné @danAbramovIl est jusqu'à Redux pour mettre à jour son implémentation pour adhérer à la dernière API contextuelle
La dernière API de contexte peut être utilisée pour les applications où vous utiliseriez simplement Redux pour transmettre des données entre les composants, mais les applications qui utilisent des données centralisées et gèrent la demande d'API dans les créateurs d'action utilisant
redux-thunk
ouredux-saga
auraient encore besoin de redux. En dehors de ce redux, d'autres bibliothèques sont associées, tellesredux-persist
que celles qui vous permettent de sauvegarder les données de stockage dans localStorage et de les réhydrater lors de l'actualisation, ce que l'API de contexte ne prend toujours pas en charge.Comme @dan_abramov l'a mentionné dans son blog, vous n'avez peut-être pas besoin de Redux , ce redux a une application utile comme
Avec ces nombreuses applications, il est bien trop tôt pour dire que Redux sera remplacé par la nouvelle API de contexte
la source
Si vous utilisez Redux uniquement pour éviter de transmettre des accessoires à des composants profondément imbriqués , vous pouvez remplacer Redux par l'
Context
API. Il est exactement destiné à ce cas d'utilisation.D'autre part, si vous utilisez Redux pour tout le reste (avoir un conteneur d'état prévisible, gérer la logique de votre application en dehors de vos composants, centraliser l'état de votre application, utiliser Redux DevTools pour suivre quand, où, pourquoi et comment l'état de votre application changé, ou en utilisant des plugins tels que Redux Form , Redux Saga , Redux Undo , Redux Persist , Redux Logger , etc…), alors il n'y a absolument aucune raison pour vous d'abandonner Redux. L'
Context
API ne fournit rien de tout cela.Et je pense personnellement que l'extension Redux DevTools est un outil de débogage étonnant et sous-estimé, qui justifie à lui seul de continuer à utiliser Redux.
Quelques références:
la source
Je préfère utiliser redux avec redux-thunk pour passer des appels API (également en utilisant Axios) et envoyer la réponse aux réducteurs. C'est clair et facile à comprendre.
L'API de contexte est très spécifique à la partie react-redux sur la façon dont les composants React sont connectés au magasin. Pour cela, react-redux est bon. Mais si vous le souhaitez, puisque le contexte est officiellement pris en charge, vous pouvez utiliser l'API de contexte au lieu de react-redux.
Ainsi, la question devrait être API de contexte vs react-redux, et non API de contexte vs redux. En outre, la question est légèrement opiniâtre. Depuis, je suis familier avec react-redux et je l'utilise dans tous les projets, je continuerai à l'utiliser. (Il n'y a aucune incitation pour moi à changer).
Mais si vous apprenez le redux juste aujourd'hui et que vous ne l'avez utilisé nulle part, il vaut la peine d'essayer l'API de contexte et de remplacer react-redux par votre code d'API de contexte personnalisé. Peut-être que c'est beaucoup plus propre comme ça.
Personnellement, c'est une question de familiarité. Il n'y a pas de raison claire de choisir l'un plutôt que l'autre car ils sont équivalents. Et en interne, react-redux utilise quand même Context.
la source
Les seules raisons d'utiliser Redux pour moi sont:
Vous n'avez probablement pas besoin du niveau d'indirection pour l'ensemble de votre application, c'est donc bien de mélanger les styles et d'utiliser l'état / contexte local et Redux en même temps.
la source
De: Quand utiliser Redux?
la source