Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Compreendendo o Papel dos Reducers | Aplicando Redux Toolkit no React
Gerenciamento de Estado com Redux Toolkit no React

bookCompreendendo o Papel dos Reducers

Teoria

Reducers são funções puras que especificam como o estado deve mudar em resposta às ações despachadas. Ao receber o estado atual e uma ação como parâmetros, os reducers retornam o novo estado da aplicação.

Prática

Na pasta reducers do projeto, está o arquivo counterReducer.js, onde é definido o reducer para a funcionalidade do contador:

import { createReducer } from "@reduxjs/toolkit";
import { increment, decrement } from "../actions/counterAction.js";

const initialState = 0;

const counterReducer = createReducer(initialState,
  (builder) => {
    builder
      .addCase(increment, (state) => state + 1)
      .addCase(decrement, (state) => state - 1);
});

export default counterReducer;

Explicação do código:

  • Linha 1: Importa a função createReducer do pacote @reduxjs/toolkit. Esta função é utilizada para criar reducers no Redux;
  • Linha 2: Importa os criadores de ação increment e decrement do arquivo ../actions/counterAction.js. Estes criadores de ação são usados para definir as ações que o reducer irá tratar;
  • Linha 4: Define a constante initialState como 0. Isto representa o valor inicial do contador no store do Redux;
  • Linha 6: Utiliza a função createReducer para definir o counterReducer;
  • Linhas 6-11: A função createReducer recebe dois argumentos: o initialState e uma função de callback que define como o estado deve ser atualizado com base nas ações despachadas;
  • Linha 7: Utiliza o objeto builder para definir os casos para diferentes ações dentro da função de callback;
  • Linhas 9, 10: Utiliza o método addCase do objeto builder para definir como o estado deve ser atualizado quando ações específicas, como increment e decrement, são despachadas;
  • Linhas 9, 10: A função de callback dentro de addCase recebe o estado atual (state) como argumento e retorna o novo estado após aplicar a ação correspondente;
  • Neste caso, quando a ação increment é despachada, o estado é incrementado em 1; quando a ação decrement é despachada, o estado é decrementado em 1;
  • Linha 13: Por fim, exporta o counterReducer como exportação padrão do módulo.

Nota

Em resumo, o counterReducer irá tratar as ações despachadas e atualizar o estado do contador conforme necessário no store do Redux.

1. Qual função é usada para criar reducers no Redux?

2. Qual é o propósito do objeto builder no código?

3. Quando a action increment é disparada, o que acontece com o estado?

question mark

Qual função é usada para criar reducers no Redux?

Select the correct answer

question mark

Qual é o propósito do objeto builder no código?

Select the correct answer

question mark

Quando a action increment é disparada, o que acontece com o estado?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 7

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Suggested prompts:

Can you explain how the builder callback works in createReducer?

What happens if an unknown action is dispatched to the counterReducer?

Can you show an example of how to dispatch the increment or decrement actions?

Awesome!

Completion rate improved to 4.17

bookCompreendendo o Papel dos Reducers

Deslize para mostrar o menu

Teoria

Reducers são funções puras que especificam como o estado deve mudar em resposta às ações despachadas. Ao receber o estado atual e uma ação como parâmetros, os reducers retornam o novo estado da aplicação.

Prática

Na pasta reducers do projeto, está o arquivo counterReducer.js, onde é definido o reducer para a funcionalidade do contador:

import { createReducer } from "@reduxjs/toolkit";
import { increment, decrement } from "../actions/counterAction.js";

const initialState = 0;

const counterReducer = createReducer(initialState,
  (builder) => {
    builder
      .addCase(increment, (state) => state + 1)
      .addCase(decrement, (state) => state - 1);
});

export default counterReducer;

Explicação do código:

  • Linha 1: Importa a função createReducer do pacote @reduxjs/toolkit. Esta função é utilizada para criar reducers no Redux;
  • Linha 2: Importa os criadores de ação increment e decrement do arquivo ../actions/counterAction.js. Estes criadores de ação são usados para definir as ações que o reducer irá tratar;
  • Linha 4: Define a constante initialState como 0. Isto representa o valor inicial do contador no store do Redux;
  • Linha 6: Utiliza a função createReducer para definir o counterReducer;
  • Linhas 6-11: A função createReducer recebe dois argumentos: o initialState e uma função de callback que define como o estado deve ser atualizado com base nas ações despachadas;
  • Linha 7: Utiliza o objeto builder para definir os casos para diferentes ações dentro da função de callback;
  • Linhas 9, 10: Utiliza o método addCase do objeto builder para definir como o estado deve ser atualizado quando ações específicas, como increment e decrement, são despachadas;
  • Linhas 9, 10: A função de callback dentro de addCase recebe o estado atual (state) como argumento e retorna o novo estado após aplicar a ação correspondente;
  • Neste caso, quando a ação increment é despachada, o estado é incrementado em 1; quando a ação decrement é despachada, o estado é decrementado em 1;
  • Linha 13: Por fim, exporta o counterReducer como exportação padrão do módulo.

Nota

Em resumo, o counterReducer irá tratar as ações despachadas e atualizar o estado do contador conforme necessário no store do Redux.

1. Qual função é usada para criar reducers no Redux?

2. Qual é o propósito do objeto builder no código?

3. Quando a action increment é disparada, o que acontece com o estado?

question mark

Qual função é usada para criar reducers no Redux?

Select the correct answer

question mark

Qual é o propósito do objeto builder no código?

Select the correct answer

question mark

Quando a action increment é disparada, o que acontece com o estado?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 7
some-alt