Maison > interface Web > js tutoriel > Comment créer une application TODO en utilisant React, Redux et Immutable.js

Comment créer une application TODO en utilisant React, Redux et Immutable.js

尊渡假赌尊渡假赌尊渡假赌
Libérer: 2025-02-16 09:03:10
original
326 Les gens l'ont consulté

How to Build a Todo App Using React, Redux, and Immutable.js

L'architecture basée sur les composants

React et le flux de données unidirectionnelles le rendent idéal pour la structuration de l'interface utilisateur. Cependant, ses outils de gestion d'état sont intentionnellement simples, nous rappelant que React gère principalement la vue dans le modèle de contrôle-contrôle (MVC) de modèle. Bien que la construction de grandes applications uniquement avec React soit possible, le code efficace nécessite une gestion externe de l'état.

Bien qu'aucune solution officielle de gestion de l'État ne réagisse, plusieurs bibliothèques s'intègrent de manière transparente à son paradigme. Cet article démontre la création d'une application simple en utilisant React avec deux de ces bibliothèques: redux et immuable.js.

Prise des clés:

  • redux et immuable.js améliorent les capacités de React pour les applications plus grandes en fournissant un conteneur d'état centralisé et des structures de données immuables.
  • Construire une application React, Redux et Immutable.js TODO implique la création de composants, la conversion de données en collections ImmutableJS, la définition des actions de mise à jour de l'état, la conception d'un réducteur pour traiter les actions et générer de nouveaux états et connecter tout via un magasin et des conteneurs .
  • Bien que l'écosystème React et Redux puisse initialement sembler complexe, les concepts sous-jacents sont transférables et précieux pour apprendre d'autres architectures et langues, ce qui les rend essentiels au développement Web.

redux: un conteneur d'état centralisé

redux, inspiré par le flux et l'orme, est une bibliothèque légère agissant comme un référentiel central pour l'état d'application. Il régit les changements d'État en utilisant les principes suivants:

  1. Un seul magasin détient l'intégralité de l'état d'application.
  2. Les mises à jour d'état se produisent uniquement via Actions , pas des mutations directes.

Le cœur d'un magasin Redux est une fonction de réducteur. Cette fonction prend l'état actuel et une action, renvoyant un état nouveau . React Composants Envoyant des actions au magasin, ce qui déclenche par la suite les redéquateurs de composants au besoin.

IMMUTABLEJS: Structures de données immuables

Étant donné que Redux empêche la mutation de l'état direct, l'utilisation de structures de données immuables applique cette contrainte. ImmutableJS propose des collections immuables efficaces avec des interfaces mutables, s'inspirant de Clojure et Scala.

Demo: une simple liste de TODO

Cet exemple utilise React, Redux et ImmutableJS pour créer une liste de TODO permettant l'addition et la réduction des tâches. Le code complet est disponible sur github [lien vers le repo github irait ici].

Configuration

  1. Créez un dossier de projet et initialisez package.json en utilisant npm init.
  2. Installez les dépendances nécessaires:
npm install --save react react-dom redux react-redux immutable
npm install --save-dev webpack babel-core babel-loader babel-preset-es2015 babel-preset-react
Copier après la connexion
  1. Nous utiliserons JSX et ES2015, compilé avec Babel via WebPack. Créer webpack.config.js:
module.exports = {
  entry: './src/app.js',
  output: {
    path: __dirname,
    filename: 'bundle.js'
  },
  module: {
    loaders: [
      {
        test: /\.js$/,
        exclude: /node_modules/,
        loader: 'babel-loader',
        query: { presets: ['es2015', 'react'] }
      }
    ]
  }
};
Copier après la connexion
  1. Ajouter un script de construction à package.json:
"scripts": {
  "build": "webpack --debug"
}
Copier après la connexion

Exécutez npm run build pour compiler.

React Composants

Nous créerons deux composants: <todo></todo> et <todolist></todolist>. (Le code des composants serait inséré ici, similaire à l'entrée d'origine mais potentiellement avec des ajustements mineurs pour la clarté et la concision).

redux et intégration immuable

traduire les données factices en collections immuables: (code pour convertir les données factices en ImmutableJS serait insérée ici).

Ajustez les composants pour utiliser des méthodes immuablesjs (par exemple, todo.get('id') au lieu de todo.id).

Actions

Définir les créateurs d'action pour ajouter et basculer Todos: (le code pour les créateurs d'action serait inséré ici).

réducteur

Créez la fonction de réducteur pour gérer les actions et mettre à jour l'état: (le code de la fonction de réducteur serait inséré ici).

Connexion des composants et stocker

Créez un magasin et connectez-le aux composants React en utilisant react-redux: (code pour la connexion des composants et le magasin, y compris les conteneurs et le fournisseur, serait inséré ici).

Conclusion

Bien que l'écosystème React et Redux ait une courbe d'apprentissage abrupte, les principes sous-jacents sont largement applicables. Cette introduction fournit une base pour explorer des architectures et des langues similaires. La maîtrise des architectures basées sur l'action et des données immuables est de plus en plus précieuse pour les développeurs Web modernes.

FAQs sur l'utilisation de redux avec react (cette section serait ajoutée ici, reformatée pour une meilleure lisibilité et potentiellement raccourcie / résumé pour la brièveté)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal