Redux da zero implementazione

Crea il tuo Redux: createStore, combineReducers, Connect e Provider.

La rappresentazione semplice del flusso di dati Redux è:

Flusso di dati Redux

User interaction dispatches an action --> The reducer updates the state based on the action --> Subscribed components update the UI based on the new state.

Consideriamo la seguente app:

Questo è un semplice esempio di applicazione basata su redux. C'è solo un componente semplice che è collegato al ciclo redux ( Counter ). All'interno abbiamo due pulsanti: incrementa e decrementa . Come probabilmente hai già intuito, questi pulsanti aumenteranno o diminuiranno il valore del contatore .

Ora scopriamo di quali oggetti e funzioni abbiamo bisogno per costruire Redux da zero: — createStore , combineReducers , connect e Provider .

createStore

Un albero di oggetti immutabile e contiene lo stato dell'applicazione. createStore(reducer, state, enhancer): createStoreaccetta reducere come input e genera un stateoggetto .enhancerstore

  • getState(): ottieni lo stato del negozio
  • dispatch(action): utilizzare reducerper ottenere nuovi statee notificare a ciascun ascoltatore il cambiamento di stato.
  • subscribe(listener): ci permette di aggiungere un ascoltatore al filestore

La combineReducersfunzione di supporto trasforma un oggetto i cui valori sono diverse funzioni di riduzione in un'unica funzione di riduzione a cui è possibile passare createStore.. È solo una funzione di utilità per combinare più riduttori in uno e risparmiare tempo per un codice standard. Il suo ruolo è quello di sostituire il seguente snippet:

export default function todoApp(state = {}, action) {
  return {
    filter: filter(state.filter, action),
    todos: todos(state.todos, action)
  }
}
with:
const todoApp = combineReducers({
  filter,
  todos
});

function combineReducers(obj) {  
  return (state = {}, action) => {
    const newState = {};
    for (let key in obj) {
      newState[key] = obj[key](state[key], action);
    }
    return newState;
  }
}
    
      

La connect()funzione collega un componente React a un negozio Redux.

  • Fornisce al suo componente connesso le parti dei dati di cui ha bisogno dal negozio e le funzioni che può utilizzare per inviare azioni al negozio.
  • Non modifica la classe componente passatagli; invece, restituisce una nuova classe di componenti connessa che racchiude il componente che hai passato.

<Provider />Rende Redux disponibile a tutti i storecomponenti nidificati che sono stati racchiusi nella connect()funzione.

  • Poiché qualsiasi componente React in un'app React-Redux può essere collegato, la maggior parte delle applicazioni eseguirà il rendering di un <Provider>livello superiore, con l'intero albero dei componenti dell'app all'interno di Provider.
  • Per implementarlo, possiamo utilizzare la nuova API di contesto . Quindi il Provider diventa davvero semplice. L'unica cosa che dobbiamo fare è usare quell'API e passare il negozio :

Conclusione

Abbiamo coperto gli oggetti e le funzioni di base di cui abbiamo bisogno per costruire Redux da zero. Spero che tu l'abbia trovato utile.

Grazie per aver letto :)

Suggested posts

Evitare le conseguenze devastanti di un ictus: imparare dal viaggio di una famiglia.

Evitare le conseguenze devastanti di un ictus: imparare dal viaggio di una famiglia.

Introduzione Un ictus è un'emergenza medica che può colpire chiunque in qualsiasi momento. Si verifica quando il flusso sanguigno verso una parte del cervello viene interrotto, portando a un'improvvisa perdita della funzione cerebrale.

La rivoluzione senza codice: scatenare la prosperità aziendale con Webflow, Framer, Bubble.io,

La rivoluzione senza codice: scatenare la prosperità aziendale con Webflow, Framer, Bubble.io,

Intraprendi un entusiasmante viaggio di innovazione e successo mentre attingi al potenziale inutilizzato di queste sorprendenti piattaforme senza codice. Permettetemi di condividere con voi una storia su Sapna, una straordinaria donna imprenditrice.

Related posts

La persecuzione dei cristiani: il crimine d'odio di cui non parliamo

Dimentica l'islamofobia: i cristiani (e gli ebrei) sono le principali vittime dei crimini di odio religioso.

La persecuzione dei cristiani: il crimine d'odio di cui non parliamo

Qualsiasi mente razionale sa che i circoli politici e mediatici sono dominati dalla sinistra, anche dall'estrema sinistra, uno stato di cose che crea uno squilibrio nel discorso politico. Nel campo della religione, questo squilibrio è chiaramente visibile: giornali e reti di sinistra non si affrettano a difendere la fede cristiana.

3 modi comprovati per migliorare la tua abilità di scrittura

I vantaggi della scrittura e le strategie per aiutarti a farlo

3 modi comprovati per migliorare la tua abilità di scrittura

Nel 2022, con il rilascio di GPT-3, l'abilità di scrittura sembra diventare meno importante. Con l'intelligenza artificiale, anche le persone con una scrittura scadente possono generare personale di qualità.

Niente più password: come le passkey sostituiranno la tua password

Niente più password: come le passkey sostituiranno la tua password

Per evitare ambiguità verranno utilizzati i seguenti termini; Autenticatore; Il telefono cellulare utilizzato per effettuare il login Sito web; Il sito Web o l'applicazione che l'utente sta utilizzando per effettuare la richiesta di accesso al Servizio; Il fornitore che fornisce il servizio dato, ad es

La lenta erosione: svelare i modi in cui le persone deperiscono nella loro carriera

La lenta erosione: svelare i modi in cui le persone deperiscono nella loro carriera

Nel mondo frenetico e competitivo di oggi, la propria carriera gioca un ruolo significativo nella crescita personale, nella stabilità finanziaria e nella soddisfazione generale della vita. Tuttavia, molte persone si trovano intrappolate in un ciclo inesorabile di stagnazione e insoddisfazione, che si esauriscono gradualmente nella loro vita professionale.