Redux: Exemples du monde réel (y compris CRUD, modèles avancés, etc.)

Créé le 2 févr. 2016  ·  45Commentaires  ·  Source: reduxjs/redux

Inspiré à l'origine par le tweet de Dan .

TL; DR - Nous aimerions financer la création/révision de code/pédagogie d'une application Redux à part entière couvrant des cas d'utilisation réels qui seraient hébergés dans ce référentiel ainsi qu'un

L'écriture d'exemples riches prend beaucoup de temps et nécessite des points de terminaison d'API accessibles en écriture (entre autres). Cependant, c'est quelque chose qui me semble vraiment important pour s'assurer que les développeurs ont un bon cadre de référence lors de la création de leurs applications. Nous avons également une tonne de nos utilisateurs qui demandent ce genre d'introduction sur Redux, et en tant que tel, nous sommes heureux de financer sa création.

J'adorerais entendre toutes les idées que vous aurez à ce sujet et si vous êtes intéressé à y travailler !

examples

Commentaire le plus utile

J'aimerais avoir un exemple officiel de CRUD qui gère :

  • Authentification
  • Normalisation
  • Mises à jour optimistes
  • Édition locale
  • Relations d'entité
  • Pagination

Si vous souhaitez construire un cours autour de cela, c'est incroyable. Cependant, je pense qu'il est important que l'exemple lui-même soit contribué à ce référentiel afin que nous puissions le maintenir et le tenir à jour avec les derniers changements. Par conséquent, il doit être cohérent avec le système de construction et les conventions que nous utilisons dans les exemples existants.

Est-ce que ça a du sens?

Tous les 45 commentaires

J'aimerais avoir un exemple officiel de CRUD qui gère :

  • Authentification
  • Normalisation
  • Mises à jour optimistes
  • Édition locale
  • Relations d'entité
  • Pagination

Si vous souhaitez construire un cours autour de cela, c'est incroyable. Cependant, je pense qu'il est important que l'exemple lui-même soit contribué à ce référentiel afin que nous puissions le maintenir et le tenir à jour avec les derniers changements. Par conséquent, il doit être cohérent avec le système de construction et les conventions que nous utilisons dans les exemples existants.

Est-ce que ça a du sens?

J'aimerais aussi voir où les gens récupèrent les données des API.

@gaearon le contenu/code sera open source, donc ce n'est pas un problème. Nous voudrions simplement demander un lien vers nous quelque part sur la page :) (modifier - l'utilisation du système de construction/des conventions existantes est également préférable pour nous)

@sebastiandeutsch pouvez-vous nous en dire plus ?

Il y a quelque temps, j'ai commencé à jouer avec l'écriture d'un gestionnaire de mots de passe en utilisant react+redux, monogram et eccrypto . Stockez les mots de passe et partagez-les tous sans jamais les envoyer par câble sous une forme non cryptée à l'aide d'ECIES. Je n'ai jamais vraiment réussi à le terminer, mais il pourrait très bien satisfaire tous les éléments de https://github.com/rackt/redux/issues/1353#issuecomment -178760036. Cela semble-t-il intéressant ?

@vkarpov15

Cela semble très intéressant, mais je crains que ce ne soit un peu trop spécifique à un domaine. La plupart des gens voudront voir un exemple CRUD général (listes d'éléments modifiables pouvant être liés à l'un ou l'autre des éléments, etc.), et je crains qu'un focus crypto ne rende l'exemple moins accessible.

Je suis très intéressé par l'édition locale/hors ligne avec des mises à jour optimistes, j'ai un peu de temps mais je ne suis pas aussi expérimenté avec l'application redux, je n'ai qu'une application native complexe, mais presque entièrement locale/hors ligne.
Peut-être pourrions-nous écrire un dépôt et travailler dessus et discuter progressivement ?
Et qu'en est-il des applications « modulaires » ?
Juste pour partager quelques idées, j'ai écrit quelques idées sur la façon dont je pense que la première application hors ligne devrait être, essayez-la si vous avez du temps à y consacrer ! :)

https://github.com/jsforum/jsforum/issues/7

Je ne sais pas à quel point le problème est répandu et quel est le niveau cible des développeurs pour ce cours, mais j'aimerais voir quelque part sur le net comment concevoir des composants d'application complexes implémentés dans react+redux (comme un formulaire en plusieurs étapes ou un assistant avec état contrôlé par plusieurs réducteurs) afin qu'ils soient réutilisables dans leur ensemble dans une autre application.

@sompylasar N'hésitez pas à créer un problème à ce sujet dans le référentiel React Redux. Je suis heureux de discuter des approches pour réutiliser ou isoler le composant prenant en charge Redux.

Si vous cherchez un exemple brut de niveau débutant, il y a toujours todo-mvc et l'armée de didacticiels "démarrage avec babel+redux+react+webpack". Je ne suis pas sûr qu'il y ait beaucoup de valeur à un autre, je finis par lire quelques nouveaux articles de blog sur le sujet chaque semaine (mais peut-être pourriez-vous créer une application qui génère automatiquement ces tutoriels ? :p ). Je dirais qu'un didacticiel de niveau plus intermédiaire serait plus intéressant et que l'apprentissage de l'OMI sur la cryptographie pourrait être un avantage secondaire attrayant.

Je ne cherche pas un exemple de niveau débutant, mais les parties complexes de CRUD (pagination, normalisation, mises à jour optimistes, relations) devraient être au centre de l'exemple.

Cela consommerait-il une API personnalisée ou existante ? Ou combinaison ?

C'est la question difficile. Je ne sais pas. L'API Github peut être une bonne idée car elle est accessible en écriture et les concepts sont familiers à tout le monde. Je sais que @ryanflorence a travaillé sur quelque chose de similaire.

Cibler définitivement les développeurs intermédiaires avancés avec cela ; les tuts pour débutants ont été saturés et couvrent rarement les sujets (réels) plus difficiles que Dan énumérés ci-dessus.

Je suis ouvert aux API personnalisées et/ou existantes - nous serions heureux d'héberger toutes les API personnalisées sur notre compte aws. Nous avons également une API complète pour un clone Medium.com que nous développons pour quelques autres cours que nous pourrions utiliser, le code source du backend serait également disponible pour cela si les gens sont curieux. Heureux de partager des détails si cela semble intéressant.

@EricSimons J'aimerais en savoir plus sur le clone Medium.

@cshenoy Bien sûr. Nous construisons un cours JS fullstack qui aura React/Redux comme frontend et Node comme backend. Nous aurons l'API backend hébergée indépendamment pour les personnes qui ne souhaitent pas l'exécuter localement, cela pourrait donc être une bonne solution pour enseigner certains des sujets les plus complexes ci-dessus. L'ensemble de fonctionnalités pour le clone moyen comprend les éléments suivants :

  • Authentification (e-mail/pass & oAuth, JWT)
  • CRUD pour les articles de blog et commentaires sur les articles de blog
  • Utilisateurs suivants
  • Flux global de tous les blogs et flux des blogs des utilisateurs que vous suivez
  • Système de marquage
  • Profils d'utilisateurs/modification des informations de profil

L'ETA sur la base de code finale est d'ici la fin de cette semaine, j'aurai donc plus d'informations à ce moment-là. Nous avons tout conçu pour être super modulaire, donc ajouter des fonctionnalités supplémentaires serait trivial.

Les feuilles de temps (trackers temporels) exercent vraiment beaucoup d'aspects complexes de flux/redux et crud. La pagination et la mise en cache sont des besoins évidents lorsque vous faites défiler les jours et les semaines d'avant en arrière. Il existe également de nombreuses API accessibles en écriture. Il y a aussi beaucoup plus qu'un simple suivi du temps. Gestion des utilisateurs, entités de projet, etc.

Je pense que ce serait génial. J'ai un peu lutté avec ça, surtout la partie de création. Par exemple, supposons que vous ayez un composant ArticlePage qui crée de nouveaux articles comme celui-ci :

// shortened version

import { addArticle } from '../actions'

function doAddArticle(props, handleAdded, values, dispatch) {
  props.addArticle(values)
  .then(handleAdded)
}

class AddArticlePage extends Component {
  handleAdded = () => {
    this.props.pushState(null, '/articles/')
  };

  render() {
    return (
      <div>
        <ArticleForm submit={(values, dispatch) => doAddArticle(this.props, this.handleAdded, values, dispatch)} />
      </div>
    )
  }
}

function mapStateToProps(state) {
  return {}
}

export default connect(mapStateToProps, {
  pushState,
  addArticle
})(AddArticlePage)

  1. Je ne suis même pas sûr que ce soit la "bonne" chose à faire pour enchaîner la promesse résolue de faire la redirection.
  2. Que faire si je veux obtenir l'ID de l'article nouvellement créé et au lieu de rediriger vers la page d'index, je veux rediriger vers la page /articles/{id}/ ?
  3. Que faire si mon composant veut le résultat de l'action asynchrone ? Pour moi, cela est apparu dans mon composant ArticleForm avec un champ de formulaire de téléchargement d'image : j'envoie une action "addImage" et lorsque l'image est chargée, je veux 1) afficher un aperçu de l'image téléchargée en fonction de l'URL et 2) vouloir attribuer l'URL au formulaire. Mais, j'ai eu du mal à comprendre quelle était la meilleure façon de le faire dans Redux. Le problème que j'ai trouvé était que vous devez pouvoir mapper l'état/l'image nouvellement ajouté à un accessoire dans le composant de formulaire, mais 1) comment obtenez-vous l'image nouvellement ajoutée et 2) que se passe-t-il s'il y a 2 images téléchargées simultanément, comment obtenez-vous la bonne URL d'image pour le bon composant ?

Certes, je n'utilise Redux que depuis quelques mois, donc ce sont peut-être des problèmes idiots, mais en tant que débutant, ils m'ont définitivement fait trébucher et je ne pense toujours pas que mes solutions soient la "bonne façon".

@jonathaningram avez-vous déjà regardé redux-thunk ? Comme alternative à ce que vous faites ci-dessus, cela vous permettrait d'envoyer de l'intérieur de votre action

@babsonmatt oui, je l'utilise déjà. J'ai basé l'application sur l'exemple du monde réel qui l'utilise. Peut-être que je ne l'utilise pas au maximum de ses capacités.

@jonathaningram Merci pour votre exemple. Comme cela a été souligné, vous devez déplacer la logique de redirection vers le thunk du créateur d'action et envoyer la mise à jour de l'itinéraire à partir de là. Il existe d'autres façons de gérer les effets secondaires (la redirection est un effet secondaire de la transition d'état causée par cette action), comme redux-saga ou redux-side-effects. Mais je pense que la discussion approfondie est hors de portée de cette question.

@sompylasar merci. Oui, je ne veux pas distraire le problème, mais je voulais juste partager mes expériences dans le "monde réel" en tant que débutant de redux, ce qui, espérons-le, aidera les nouveaux exemples qui découlent de ce problème.

@EricSimons Je suis intéressé à aider. Je maintiens actuellement une application CRUD utilisant Nuclear-js et je pense que beaucoup de ses idées se traduiraient bien en redux. Faites-moi savoir si vous voulez réfléchir.

J'ai récemment lancé un projet de gestion d'état CRUD (sur REST). Venant de Marionette/Backbone j'ai vraiment raté les conventions REST lorsque j'ai commencé à creuser sur React/Redux.

https://github.com/masylum/resting-ducks

Je ne suis pas sûr que la solution soit des exemples. Je pense que les bibliothèques fonctionnent mieux pour cela. La gestion des états est presque toujours la même, en 2016, nous ne devrions pas écrire du code CRUD mais nous concentrer sur notre logique métier.

@EricSimons J'évalue actuellement différentes options où spécifier les besoins en données et quand récupérer les données. Une option serait d'implémenter quelque chose de Relayish - mais j'ai le sentiment que c'est un peu exagéré. Quelque chose que j'ai inventé pour un projet est de spécifier mes besoins de chargement dans les routes avec un attribut loader :

let routes = <Route path='/' component={Layout}>
  <IndexRoute component={BooksIndex} />
  <Route path='/book/new' component={BooksNew} />
  <Route path='/book/:id' component={BooksShow} loader={BooksLoader} />
  <Route path='/book/:id/edit' component={BooksEdit} loader={BooksLoader} />
</Route>;

Le BooksLoader est une classe qui implémente deux fonctions :

  • NeedToSyncStore(params, store) renvoie true si le magasin doit être synchronisé, sinon false
  • syncStore(params, store) synchronisera le store et renverra une promesse

Voici un exemple d'implémentation très basique qui peut être définitivement remplacé par quelque chose de plus intelligent (par exemple ImmutableJS / Map):

import _ from 'lodash';
import * as Actions from 'actions';
import API from 'api';

export default class BooksLoader {
  needsToSyncStore(params, store) {
    let books = store.getState().books;

    if(books) {
      const book = _.findWhere(books.collection, { isbn: params.id });
      if(book) {
        return false;
      }
    }

    return true;
  }

  syncStore(params, store) {
    let { dispatch } = store;
    let api = new API();

    let loadBooks = Actions.loadBooks();
    return loadBooks(dispatch, store.getState);
  };
}

L'idée est qu'un chargeur ne se soucie que de l'état fourni par une route et de l'arbre d'état redux, ce qui le rend facile à tester.

La pièce suivante est un chargeur de magasin qui est un composant de réaction fortement inspiré de @ryanflorence AsyncProps (https://github.com/rackt/async-props) qui peut être utilisé comme RenderContext de ReactRouter : https://gist.github. com/sebastiandeutsch/e6148ca0741cc355248c

Il vérifie les routes de ReactRouter pour les chargeurs et les exécute. Il expose également l'état de chargement via des contextes. En action, cela ressemblerait à ceci :

<Provider store={store}>
  <Router
    history={browserHistory}
    render={(props) => (
      <StoreLoader {...props} store={store} />
    )}>
      {routes}
    </Router>
</Provider>

Dans un composant de route (ce sont des composants spéciaux qui sont des enfants directs du routeur), je peux utiliser le contexte comme ceci :

export class BooksShow extends React.Component {
  static contextTypes = {
    storeIsSynchronized: React.PropTypes.bool
  };
  ...
  render() {
    const { book } = this.props;

    if(this.context.storeIsSynchronized) {
      /* display components */
    } else {
      /* display loading spinner */
    }
}

export default connect(
  (state, props) => {
    return {
      book: _.findWhere(state.books.collection, { isbn: props.params.id } )
    }
  },
  (dispatch) => ({
    actions: bindActionCreators(Actions, dispatch)
  })
)(BooksEdit);

@gaearon Que pensez-vous de ces idées ?

@sebastiandeutsch J'aime cette approche. J'expérimente moi aussi avec Async-Props, vos idées ici ont l'air vraiment cool.

J'ai imaginé que l'exemple était censé être plus général plutôt que conçu autour d'une abstraction pour la récupération de données. J'aime vraiment https://github.com/optimizely/nuclear-js/tree/master/examples/rest-api comme exemple de base d'un moyen simple de configurer des magasins et des actions pour les API Rest.

Je l'ai étendu pour prendre en charge la mise en cache et même stocker les demandes en cours dans un magasin (de sorte que si la demande est à nouveau faite, l'appelant obtient simplement un différé au lieu de réinitialiser le xhr. Un exemple plus robuste de ce dont je parle est ici : https://github.com/jordangarcia/nuclear-api-module-example/tree/master/rest_api. Et j'ai copié certains des concepts de

@EricSimons est-il davantage

Je suis principalement intéressé par le sujet (puisque dans le pire des cas, nous pouvons héberger nos propres API en écriture pour les utilisateurs). Un grand merci à tous les commentateurs ci-dessus, cette discussion a été fantastique jusqu'à présent. J'adorerais entendre plus de réflexions/idées sur ce que nous devrions couvrir dans ces exemples.

Pour info @dan-weaver et d'autres intéressés à travailler sur ce sujet - n'hésitez pas à m'envoyer une note [email protected]

Dans le monde de Meteor, il existe un grand exemple de projet open source qui provient d'un livre sur Meteor. Ce projet est Telescope , qui est une application Web similaire à Reddit ou Hacker News. Si Redux avait un exemple similaire, ce serait génial. Beaucoup de développeurs ont appris Meteor en suivant le livre et en construisant une version plus petite de Telescope avec lui. Une application comme Telescope couvrirait tous les sujets abordés par Dan sur une application que la plupart des développeurs connaissent déjà (à cause de Hacker News, Reddit, ..).

J'ai commencé à créer la base d'une application similaire il y a quelques mois chez webapp *. Ce projet a le processus de construction, les modules CSS, l'authentification, un serveur séparé pour l'API, MongoDB, le rendu côté serveur, GraphQL et plus encore (bien que certaines choses puissent être un peu obsolètes, nécessiter plus de travail ou pourraient être faites mieux). Il a en outre une division du réducteur, ce que je pense qu'aucun autre exemple n'a. Les grandes choses qui lui manquent sont de bonnes solutions pour la récupération de données, des mises à jour optimistes, des données en temps réel. De plus, c'est un peu dépassé car 2 mois semblent être une éternité à quelle vitesse tout progresse en ce moment :)

Si vous voulez un point de départ pour créer l'exemple du cours, peut-être que _webapp_ pourrait être une source d'inspiration. Et j'adorerais voir quelque chose de similaire à Telescope fait dans Redux.

*_Le dossier knowhow contient des informations sur l'architecture/les décisions prises._


_Sidenote:_ Parce que j'ai remarqué que Redux n'a pas d'histoire pour la récupération de données, je crée actuellement un système similaire à Relay qui s'intègre à Redux. C'est la raison pour laquelle je n'ai pas mis à jour _webapp_ depuis 2 mois. Si je réussis à créer ce système, je continuerai _webapp_ avec.

Un problème rencontré est que Redux est de très bas niveau et donc assez peu avisé sur la façon dont vous construisez _réellement_ une application autour de lui. Je ne suis donc pas sûr que nous puissions simplement maintenir _un_ exemple de base de code à partir duquel apprendre car il y a tellement d'abstractions valides possibles _entre_ le redux et l'interface utilisateur finale. Ceci est illustré par une partie de la discussion dans ce fil où de nombreuses possibilités différentes de chargement de données sont présentées sans gagnant clair - il n'y a pas de bonne façon car les échelles d'application diffèrent énormément.

Pour cette raison, il est souhaitable de proposer "_The_ Advanced TODOMVC of Redux" à une spécification qui nécessite toutes les fonctionnalités avancées que Dan a mentionnées précédemment.

Au fur et à mesure que nous avançons, je pense que nous commencerons à voir plus d'abstractions/bibliothèques/frameworks _around_ Redux qui pourraient utiliser cette application avancée comme preuve de concept. En fait, au fil du temps, cela peut être renommé pour ne pas être spécifique à Redux.

Sur le front de l'API, j'aimerais le voir suivre une sorte de norme ( JSON-API fournit une excellente base pour la dénormalisation et la description des relations) et éventuellement avoir un serveur GraphQL devant cela.

Quant à la façon dont cela est structuré en tant que communauté, je soupçonne que nous pourrions avoir un référentiel de base contenant les spécifications de l'application, la ou les implémentations du serveur ainsi qu'une liste / tableau de comparaison de toutes les implémentations actuelles.


D'un côté, mais partiellement lié, note du sujet spécifique ici, je pense que nous ferions bien de donner la priorité à ce problème en clarifiant la portée de Redux - en insistant sur la nature de bas niveau.

Ps. J'ai bientôt une conférence "Real World Redux" à React London (où j'espère avoir le temps d'explorer les problèmes les plus avancés) alors faites attention à ça :D

Je serais prêt à travailler là-dessus, je pense que fournir aux nouveaux arrivants une application Redux utilisable, commentée et expliquée qui n'est pas une liste de tâches est une excellente idée. Des travaux sur ce sujet ont-ils déjà commencé @EricSimons ?

Il semble y avoir beaucoup de questions similaires sur la façon de réduire le passe-partout de redux et de construire quelque chose de réel avec. Je pense avoir trouvé une assez bonne solution (entre autres) dont j'ai parlé ici :

https://medium.com/@timbur/react -automatic-redux-providers-and-replicators-c4e35a39f1

TL;DR : Vous pouvez créer des fournisseurs redux qui s'associent automatiquement à vos composants en fonction de leur propTypes . Tout ce dont vous avez vraiment besoin est un répertoire components , un répertoire providers et un répertoire themes facultatif mais recommandé. Tout est facilement interchangeable, compréhensible, maintenable, extensible et réutilisable. Il y a beaucoup plus inclus avec tout cela, comme le rechargement à chaud du client et du serveur, le rendu du serveur, etc., etc. 1 heure cela prendrait généralement. :)

Parlant d'expérience en tant qu'adoptant à réaction précoce, je préfère ne pas utiliser l'API Github dans un exemple.

  • Son authentification est trop compliquée pour quelqu'un qui recherche quelque chose qui "fonctionne simplement".
  • Ce n'est pas adapté pour expérimenter. Pour éviter d'être destructeur lors des mutations d'API, je devrais créer un compte Github séparé/jetable.

Au lieu de cela, veuillez utiliser une API personnalisée simple. Nous ne voulons pas dépendre de tiers et permettre à quiconque d'exécuter sa propre instance comme mon exemple BottledAPI (wip) dans json-server .

Cela permettrait également d'autres implémentations de backend en Javascript, Java, C#, PHP, etc. Cela aiderait à démarrer le développement, car c'est assez clé en main.

BTW dans le lien dans mon commentaire ci-dessus, il y a des détails sur la façon de créer une application de blog. Je prévois d'ajouter l'authentification utilisateur et tout cela au cours de la semaine prochaine.

Salut les gars! J'étudie ReactJS et j'ai développé une version de mon raccourcisseur d'URL personnel en utilisant React + Redux. Mon exemple utilise Gulp + Browserify + Babelify pour le développement frontend. J'ai écrit des tests unitaires en utilisant Mocha et Enzyme pour les composants et les actions. Cet exemple a aussi :

  • Opérations de création, de lecture et de mise à jour
  • Authentification avec le jeton Web Json
  • Pagination
  • Mots clés
  • SCRO

Il y a quelques bugs dans l'interface et la convivialité. Mais ça marche =)
Peut-être que quelqu'un peut l'utiliser comme base pour un exemple du monde réel.

Démo : https://gustavohenrique.github.io/gh1
Source : https://github.com/gustavohenrique/gh1

J'accepte les suggestions sur la façon d'améliorer cet exemple. Merci!

Un peu tard pour la fête, mais je viens de lancer une application Web de gestion à part entière basée sur Redux.

Nous utilisons redux-thunk pour les tâches asynchrones et redux-ignore qui a fourni une amélioration surprenante (_sur mobile_), simplement en filtrant nos réducteurs de niveau supérieur.
L'application Web est 100% responsive, elle est donc facile à utiliser/tester sur mobile.

Nous gérons les mises à jour optimistes en « annulant » l'action précédente. Les réducteurs concernés savent comment revenir à leur état précédent, c'est donc assez isolé et efficace.

Quoi qu'il en soit, voici les liens http://www.handy-erp.com/en/
Créez simplement un compte et assommez-vous.

@SebastienDaniel Félicitations ! c'est un beau site. Avez-vous mis la partie redux dans un référentiel public?

Merci @gustavohenrique
Malheureusement non, la source n'est pas dans un dépôt public. Cependant, je suis tout à fait disposé à utiliser la source pour répondre à toutes les questions ou peut-être créer des démos pour aider la communauté.

J'aimerais vraiment voir des exemples de modularité. Si vous créez une application avec une quantité énorme de fonctionnalités, vous cherchez vraiment un moyen de créer des modules à responsabilité unique. Mieux pour les équipes, mieux pour la maintenabilité.

Tout d'abord, merci pour le partage de code !@gustavohenrique
Autres choses:
Je pense que peut être une liste d'utilisateurs? connexion? S'inscrire...
redux a besoin de ces exemples !

Je suis d'accord avec @gggin et @EricSimons, une version à part entière prête pour la production de ces fonctionnalités serait incroyable :

Authentification (e-mail/pass & oAuth, JWT)
CRUD pour les articles de blog et commentaires sur les articles de blog
Utilisateurs suivants
Flux global de tous les blogs et flux des blogs des utilisateurs que vous suivez
Système de marquage
Profils d'utilisateurs/modification des informations de profil

En plus de cela, un système de rôles ou d'autorisations de base serait parfait. Quelque chose d'équivalent aux équipes de GitHub ou aux membres de Trello

Salut tout le monde,

J'ai travaillé sur une proposition vague pour un solide redux crud api juste basé sur mon expérience au cours des deux dernières semaines :

https://github.com/ppiekarczyk/redux-crud-api-middleware/blob/master/README.md

Tout commentaire serait apprécié. Merci!

Je serais prêt à prendre l'application que je construis maintenant et à la convertir également en un exemple de projet open source.

Salut à tous -- nous sommes heureux d'annoncer que l'exemple de base de code est presque prêt à être révisé. C'est super complet et couvre la plupart des cas d'utilisation du monde réel dont nous avons parlé dans ce fil (auth, CRUD, pagination, etc.). @ vkarpov15 a quelques points à terminer, mais il devrait être prêt au début de la semaine prochaine.

Nous aimerions que vous nous aidiez à réviser la base de code. Je sais que @gaearon a mentionné qu'il serait prêt à jeter un coup d'œil il y a quelques mois, et tous les commentaires de la communauté ici seraient excellents. Nous utiliserons ce référentiel pour la base de code initiale pendant que nous révisons et itérons, puis syndiquerons la version finale au référentiel redux officiel une fois prêt. N'hésitez pas à jouer/regarder, et je publierai également une mise à jour dans ce fil de discussion une fois que la base de code sera en ligne et prête à être révisée.

Heureux de répondre à toutes les questions et merci à tout le monde ici pour l'excellente discussion !

Ça a l'air bien. Assurez-vous d'ajouter une mention et un lien dans la question de la FAQ Redux associée lorsqu'elle est prête.

Comme promis, la base de code est prête à être examinée sur https://github.com/GoThinkster/redux-review , j'aimerais entendre les commentaires de chacun. Problèmes et relations publiques bienvenus !

Hé les gars, merci beaucoup pour cette discussion géniale et pour avoir donné un excellent exemple du monde réel.

Juste pour ajouter à la liste de ces exemples, je suis tombé sur cet exemple https://github.com/andrewngu/sound-redux , démo de travail déployée sur https://soundredux.io/. Il semble qu'il réponde également aux critères dont

Et enfin, merci spécial à @EricSimons pour cet exemple impressionnant du monde réel.

J'ai en fait ajouté une entrée de FAQ qui pointe vers un certain nombre d'applications React et Redux du monde réel, à l'adresse http://redux.js.org/docs/faq/Miscellaneous.html#miscellaneous -real-projects . (En fait, je sais que j'ai déjà vu cette application Sound-Redux, mais je ne pense pas l'avoir ajoutée à ma liste. Je devrai le faire.)

Je vais aller de l'avant et clore ce problème au motif qu'il ne semble plus y avoir de besoin immédiat d'ajouter un exemple plus grand directement au référentiel Redux, étant donné le nombre d'applications "pour de vrai" que nous pouvons pointer vers. Si quelqu'un souhaite contribuer activement à un exemple spécifique au dépôt, dites quelque chose et nous pouvons le rouvrir.

Et oui, merci à tous ceux qui ont contribué à la discussion et aux exemples !

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

CellOcean picture CellOcean  ·  3Commentaires

rui-ktei picture rui-ktei  ·  3Commentaires

jbri7357 picture jbri7357  ·  3Commentaires

cloudfroster picture cloudfroster  ·  3Commentaires

ramakay picture ramakay  ·  3Commentaires