Heim > Web-Frontend > js-Tutorial > So erstellen Sie eine Todo -App mit React, Redux und Immutable.js

So erstellen Sie eine Todo -App mit React, Redux und Immutable.js

尊渡假赌尊渡假赌尊渡假赌
Freigeben: 2025-02-16 09:03:10
Original
326 Leute haben es durchsucht

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

Die komponentenbasierte Architektur und ein unidirektionaler Datenfluss von React sind ideal für die UI-Struktur. Die Tools für die Staatsmanagement sind jedoch absichtlich einfach und erinnern uns daran, dass reagiert die Ansicht im MVC-Muster (Modell-View-Controller) in erster Linie. Während es möglich ist, große Anwendungen ausschließlich mit React zu bauen, erfordert ein effizienter Code eine externe Staatsmanagement.

Obwohl keine offizielle Lösung des React State Managements vorliegt, integrieren sich mehrere Bibliotheken nahtlos in sein Paradigma. Dieser Artikel zeigt, dass eine einfache Anwendung unter Verwendung von React mit zwei solchen Bibliotheken erstellt wird: Redux und Untypable.js.

Key Takeaways:

redux und unveränderlich.js verbessern die Funktionen von React für größere Anwendungen durch Bereitstellung eines zentralen Zustandsbehälters und unveränderlichen Datenstrukturen.
  • Aufbau einer React, Redux und Untiefung.js todo App beinhaltet das Erstellen von Komponenten, das Umwandeln von Daten in unveränderliche Js .
  • Während das React- und Redux -Ökosystem anfangs komplex erscheinen kann, sind die zugrunde liegenden Konzepte übertragbar und wertvoll, um andere Architekturen und Sprachen zu lernen, was sie für die Webentwicklung wesentlich macht.
Redux: Ein zentraler Zustandsbehälter

Redux, inspiriert von Fluss und ELM, ist eine leichte Bibliothek, die als zentrales Repository für den Anwendungszustand fungiert. Es regelt staatliche Änderungen anhand der folgenden Grundsätze:

Ein einzelner Speicher enthält den gesamten Anwendungszustand.
  1. Zustandsaktualisierungen erfolgen ausschließlich durch
  2. Aktionen
  3. , nicht durch direkte Mutationen.
  4. Der Kern eines Redux Store ist eine Reduzierfunktion. Diese Funktion nimmt den aktuellen Status und eine Aktion aus, wobei ein
neuer

-Status zurückgegeben wird. Reagieren Sie die Komponenten auf, die Aktionen in den Speicher versehen, die anschließend die Neuanschläge der Komponenten nach Bedarf auslösen.

unveränderliche Js: Unveränderliche Datenstrukturen

Da Redux eine direkte Zustandsmutation verhindert, erzwingt die Verwendung unveränderlicher Datenstrukturen diese Einschränkung. Unveränderliche Js bietet effiziente unveränderliche Sammlungen mit veränderlichen Schnittstellen, die sich von Clojure und Scala inspirieren lassen.

Demo: Eine einfache Todo -Liste

In diesem Beispiel wird React, Redux und Unwahrscheinlichjs verwendet, um eine TODO -Liste zu erstellen, die das Hinzufügen und Abschluss von Aufgaben ermöglicht. Der vollständige Code ist auf Github verfügbar [Link zu Github Repo würde hier gehen].

setup

  1. Erstellen Sie einen Projektordner und initialisieren Sie package.json mit npm init.
  2. Installieren Sie die erforderlichen Abhängigkeiten:
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
Nach dem Login kopieren
  1. Wir werden JSX und ES2015 verwenden, zusammengestellt mit Babel über WebPack. Erstellen Sie 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'] }
      }
    ]
  }
};
Nach dem Login kopieren
  1. Fügen Sie ein Build -Skript zu package.json:
  2. hinzu
"scripts": {
  "build": "webpack --debug"
}
Nach dem Login kopieren

run npm run build zu kompilieren.

reagieren Komponenten

Wir erstellen zwei Komponenten: <todo></todo> und <todolist></todolist>. (Der Komponentencode würde hier eingefügt, ähnlich wie bei der ursprünglichen Eingabe, jedoch möglicherweise mit geringfügigen Anpassungen für Klarheit und Selbstverständlichkeit).

Redux und unveränderliche Integration

Übersetzen Sie die Dummy -Daten in unveränderliche Js -Sammlungen: (Code zum Konvertieren von Dummydaten in unveränderliche Js würde hier eingefügt).

Passen Sie die Komponenten an, um unveränderliche Methoden zu verwenden (z. B. todo.get('id') anstelle von todo.id).

Aktionen

Action -Ersteller definieren zum Hinzufügen und Umschalten von Todos: (Code for Action -Ersteller würde hier eingefügt).

Reduzierer

Erstellen Sie die Reduzierfunktion, um Aktionen zu verarbeiten und den Status zu aktualisieren: (Code für die Reduzierfunktion würde hier eingefügt).

Verbindungskomponenten und speichern

Erstellen Sie einen Speicher und verbinden Sie es mit react-redux mit den React -Komponenten an die React -Komponenten.

Schlussfolgerung

Während das React- und Redux -Ökosystem eine steile Lernkurve aufweist, sind die zugrunde liegenden Prinzipien weit verbreitet. Diese Einführung bildet eine Grundlage für die Erforschung ähnlicher Architekturen und Sprachen. Kenntnisse in actionbasierten Architekturen und unveränderlichen Daten werden für moderne Webentwickler immer wertvoller.

FAQs bei der Verwendung von Redux mit React (dieser Abschnitt würde hier hinzugefügt, neu für eine bessere Lesbarkeit und potenziell verkürzt/für die Kürze zusammengefasst)

Das obige ist der detaillierte Inhalt vonSo erstellen Sie eine Todo -App mit React, Redux und Immutable.js. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage