Розуміння Ролі Редʼюсерів
Теорія
Редʼюсери — це чисті функції, які визначають, як має змінюватися стан у відповідь на відправлені дії. Приймаючи поточний стан і дію як параметри, редʼюсери повертають новий стан застосунку.
Практика
У папці 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?
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
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
Розуміння Ролі Редʼюсерів
Свайпніть щоб показати меню
Теорія
Редʼюсери — це чисті функції, які визначають, як має змінюватися стан у відповідь на відправлені дії. Приймаючи поточний стан і дію як параметри, редʼюсери повертають новий стан застосунку.
Практика
У папці 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?
Дякуємо за ваш відгук!