/
aprogrammer
/
react-redux-basic
Обзор
Документация
Войти
/
aprogrammer
/
react-redux-basic
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/store/counterSlice.ts
40 строк
2 KB
aprogrammer
Adding demo app
14 янв 2025, 01:11
14 янв 2025, 01:11
2bb786c
Код
Авторство
О чём код?
import { createSlice, PayloadAction } from '@reduxjs/toolkit'; // Импортируем функцию createSlice и тип PayloadAction из библиотеки @reduxjs/toolkit // CounterState — это тип, который представляет состояние счетчика interface CounterState { value: number; } // initialState — это начальное состояние счетчика const initialState: CounterState = { value: 0, }; //Слайс — это часть хранилища, которая содержит редьюсер и действия //createSlice — это функция, которая создает слайс // name — это имя слайса // initialState — это начальное состояние слайса // reducers — это объект, который содержит редьюсеры // increment — это редьюсер, который увеличивает значение счетчика на 1 // decrement — это редьюсер, который уменьшает значение счетчика на 1 // incrementByAmount — это редьюсер, который увеличивает значение счетчика на заданное число // PayloadAction — это тип, который представляет действие с данными // action.payload — это данные действия const counterSlice = createSlice({ name: 'counter', initialState, reducers: { increment: (state) => { state.value += 1; }, decrement: (state) => { state.value -= 1; }, incrementByAmount: (state, action: PayloadAction<number>) => { state.value += action.payload; }, }, }); export const { increment, decrement, incrementByAmount } = counterSlice.actions; // Экспортируем действия из слайса export default counterSlice.reducer; // Экспортируем редьюсер из слайса