Розуміння Ролі Редʼюсерів
Свайпніть щоб показати меню
Теорія
Редʼюсери — це чисті функції, які визначають, як має змінюватися стан у відповідь на відправлені дії. Приймаючи поточний стан і дію як параметри, редʼюсери повертають новий стан застосунку.
Практика
У папці reducers нашого проєкту знаходиться файл counterReducer.js, у якому визначено редʼюсер для функціоналу лічильника:
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;
Пояснення коду:
- Рядок 1: Імпорт функції
createReducerз пакета@reduxjs/toolkit. Ця функція використовується для створення редʼюсерів у Redux; - Рядок 2: Імпорт креаторів дій
incrementтаdecrementз файлу../actions/counterAction.js. Ці креатори дій використовуються для визначення дій, які буде обробляти редʼюсер; - Рядок 4: Встановлення константи
initialStateу значення0. Це початкове значення лічильника у Redux store; - Рядок 6: Використання функції
createReducerдля визначенняcounterReducer; - Рядки 6-11: Функція
createReducerприймає два аргументи:initialStateі callback-функцію, яка визначає, як має оновлюватися стан залежно від відправлених дій; - Рядок 7: Використання обʼєкта
builderдля визначення обробки різних дій усередині callback-функції; - Рядки 9, 10: Використання методу
addCaseобʼєктаbuilderдля визначення, як має оновлюватися стан при відправленні конкретних дій, таких якincrementіdecrement; - Рядки 9, 10: Callback-функція всередині
addCaseприймає поточний стан (state) як аргумент і повертає новий стан після застосування відповідної дії; - У цьому випадку, коли відправляється дія
increment, стан збільшується на1; коли відправляється діяdecrement, стан зменшується на1; - Рядок 13: Нарешті, експортується
counterReducerяк експорт за замовчуванням модуля.
Примітка
Підсумовуючи,
counterReducerбуде обробляти відправлені дії та відповідно оновлювати стан лічильника у Redux store.
1. Яка функція використовується для створення редʼюсерів у Redux?
2. Яке призначення обʼєкта builder у коді?
3. Що відбувається зі станом, коли відправляється дія increment?
Все було зрозуміло?
Дякуємо за ваш відгук!
Секція 2. Розділ 7
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Секція 2. Розділ 7