Heim > Web-Frontend > js-Tutorial > Hauptteil

Leitfaden zu Redux: Eine robuste Zustandsverwaltungsbibliothek für JavaScript-Anwendungen

王林
Freigeben: 2024-07-21 09:34:29
Original
949 人浏览过

Guide to Redux: A Robust State Management Library for JavaScript Applications

Redux ist weithin als robuste Zustandsverwaltungsbibliothek anerkannt, die speziell für JavaScript-Anwendungen entwickelt wurde und oft zusammen mit dem beliebten Framework React verwendet wird. Durch die Bereitstellung eines zuverlässigen Zustandscontainers schafft Redux eine solide Grundlage, die die Handhabung und Fehlerbehebung von Anwendungszuständen erheblich vereinfacht. Dieser Leitfaden befasst sich eingehend mit den Grundkomponenten von Redux, bietet detaillierte Erklärungen zu jedem Element und veranschaulicht, wie sie synergetisch zusammenarbeiten, um die Gesamtfunktionalität der Anwendung zu optimieren. Ziel dieser eingehenden Untersuchung ist es, das Innenleben von Redux zu erläutern und Entwicklern die Möglichkeit zu geben, die Feinheiten dieses Zustandsverwaltungstools zu verstehen und seine Fähigkeiten effektiv in ihren Projekten zu nutzen.

Inhaltsverzeichnis

  1. Einführung in Redux
  2. Redux in einer React-Anwendung einrichten
  3. Aktionen und Aktionstypen
  4. Reduzierer und Slices
  5. Konfigurieren des Stores
  6. React-Komponenten verbinden
  7. Fazit und Referenzen

1. Einführung in Redux

Redux folgt einem unidirektionalen Datenflussmodell und basiert auf drei Grundprinzipien:

  • Single Source of Truth: Der Status Ihrer gesamten Anwendung wird in einem Objektbaum in einem einzigen Store gespeichert. Diese Zentralisierung erleichtert das Debuggen und Verfolgen von Änderungen in Ihrer gesamten Anwendung.
  • Der Status ist schreibgeschützt: Die einzige Möglichkeit, den Status zu ändern, besteht darin, eine Aktion auszugeben, ein Objekt, das beschreibt, was passiert ist. Dadurch wird sichergestellt, dass Zustandsmutationen vorhersehbar und nachvollziehbar sind.
  • Änderungen werden mit reinen Funktionen vorgenommen: Um anzugeben, wie der Zustandsbaum durch Aktionen transformiert wird, schreiben Sie reine Reduzierer. Reine Funktionen sind vorhersehbar und testbar, was das Debuggen und Unit-Testen vereinfacht.

2. Einrichten von Redux in einer React-Anwendung

Installieren Sie zunächst Redux und React-Redux:

npm install redux react-redux @reduxjs/toolkit
Nach dem Login kopieren

Dieser Befehl installiert die Redux-Kernbibliothek, die React-Bindungen für Redux und das Redux Toolkit, was viele häufige Aufgaben wie das Einrichten des Stores und das Erstellen von Slices vereinfacht.

3. Aktionen und Aktionstypen

Aktionen sind Nutzlasten von Informationen, die Daten von Ihrer Anwendung an Ihren Redux-Shop senden. Aktionstypen sind Konstanten, die die Aktion darstellen.

actionTypes.js

export const INCREMENT = "INCREMENT";
export const DECREMENT = "DECREMENT";
export const INCREMENT_BY_VALUE = "INCREMENT_BY_VALUE";
export const RESET = "RESET";

export const increment = () => ({ type: INCREMENT });
export const decrement = () => ({ type: DECREMENT });
export const incrementByValue = (value) => ({
  type: INCREMENT_BY_VALUE,
  payload: value,
});
export const reset = () => ({ type: RESET });
Nach dem Login kopieren

Die eindeutige Definition von Aktionen und Aktionstypen trägt dazu bei, die Konsistenz aufrechtzuerhalten und Fehler in Ihrer Anwendung zu reduzieren.

4. Reduzierer und Slices

Reduzierer geben an, wie sich der Status der Anwendung als Reaktion auf an den Store gesendete Aktionen ändert. Slices sind eine Sammlung von Redux-Reduziererlogik und -Aktionen für ein einzelnes Feature Ihrer App, die mit der createSlice-Methode des Redux Toolkits erstellt wurden.

counterSlice.js

import { createSlice } from "@reduxjs/toolkit";

const initialState = { number: 0 };

const counterSlice = createSlice({
  name: "counter",
  initialState,
  reducers: {
    increment: (state) => {
      state.number += 5;
    },
    decrement: (state) => {
      state.number = Math.max(0, state.number - 5);
    },
    incrementByValue: (state, action) => {
      state.number += action.payload;
    },
    reset: (state) => {
      state.number = 0;
    },
  },
});

export const { increment, decrement, incrementByValue, reset } = counterSlice.actions;

export default counterSlice.reducer;
Nach dem Login kopieren

So kombinieren Sie mehrere Scheiben:

rootReducer.js

import { combineReducers } from "@reduxjs/toolkit";
import counterReducer from "../slices/counterSlice";

const rootReducer = combineReducers({
  counter: counterReducer,
});

export default rootReducer;
Nach dem Login kopieren

5. Konfigurieren des Stores

Der Laden ist das Objekt, das Aktionen und Reduzierer zusammenbringt. Es speichert den Anwendungsstatus, ermöglicht den Zugriff darauf über getState(), aktualisiert ihn über Dispatch(Action) und registriert Listener über subscribe(listener).

store.js

import { configureStore } from "@reduxjs/toolkit";
import rootReducer from "../reducers/rootReducer";

const store = configureStore({
  reducer: rootReducer,
});

export default store;
Nach dem Login kopieren

6. React-Komponenten verbinden

Um React-Komponenten mit dem Redux-Store zu verbinden, verwenden Sie die Provider-Komponente von React-Redux, um den Store an Ihre Komponenten weiterzugeben, und verwenden Sie die Hooks „useSelector“ und „useDispatch“, um auf den Status zuzugreifen und ihn zu bearbeiten.

App.js

import React from "react";
import { Provider } from "react-redux";
import store from "./redux/store/store";
import Counter from "./components/Counter";
import MusCo from "./MusCo redux Leitfaden zu Redux: Eine robuste Zustandsverwaltungsbibliothek für JavaScript-Anwendungen.png";

function App() {
  return (
    
      
Leitfaden zu Redux: Eine robuste Zustandsverwaltungsbibliothek für JavaScript-Anwendungen

Practice Redux with MusCo

by Mustafa Coskuncelebi
); } export default App;
Nach dem Login kopieren

CounterComponent.js

import { useDispatch, useSelector } from "react-redux";
import {
  decrement,
  increment,
  incrementByValue,
  reset,
} from "../slices/counterSlice";
import { useState, useEffect } from "react";

function Counter() {
  const [value, setValue] = useState("");
  const dispatch = useDispatch();
  const number = useSelector((state) => state.counter.number);

  useEffect(() => {
    const showcase = document.querySelector("#showcase");
    if (number 
      

Counter

{number}

{ let newValue = e.target.value.trim(); if (newValue === "") { newValue = ""; reset(); } if (/^\d*$/.test(newValue)) { setValue(newValue); } }} value={value} placeholder="Enter Value" />

Counter cannot be less than 0

); } export default Counter;
Nach dem Login kopieren

7. Fazit und Referenzen

Redux ist eine leistungsstarke Bibliothek zum Verwalten des Status Ihrer Anwendungen. Indem Sie Aktionen, Reduzierer, den Store verstehen und wissen, wie Sie alles mit Ihren React-Komponenten verbinden, können Sie vorhersehbare und wartbare Anwendungen erstellen.

Wichtige Punkte:

  • Aktionen: Definieren Sie, was in Ihrer App passieren soll.
  • Reduzierer: Geben Sie an, wie sich der Zustand als Reaktion auf Aktionen ändert.
  • Store: Hält den Status und verwaltet die Aktionen.
  • Anbieter: Leitet den Store an Ihre React-Komponenten weiter.

Weitere Informationen finden Sie in der offiziellen Redux-Dokumentation:

  • Redux-Dokumentation
  • Redux Toolkit-Dokumentation
  • React-Redux-Dokumentation

Wenn Sie diesem Leitfaden folgen, sollten Sie ein solides Verständnis von Redux haben und in der Lage sein, es in Ihren eigenen Anwendungen zu implementieren.

以上是Leitfaden zu Redux: Eine robuste Zustandsverwaltungsbibliothek für JavaScript-Anwendungen的详细内容。更多信息请关注PHP中文网其他相关文章!

Quelle:dev.to
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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!