Reducer Flashcards
Reducer
reducer - основа Redux — это функции, которые принимают в качестве аргументов текущий state и action и возвращают новый state результат. Другими словами, (state, action) => newState.
Reducer – Это чистая функция (без сайд-эффектов (не посылает запросы на сервер, не работает с localStorage, не подписывается на события-на мышку, клавиши, не вносит изменения в DOM), предсказуемость, иммутабельность), принимающая стейт и экшн, возвращает стейт старый или новый
Преобразовывает стейт, редьюсер обязан возвращать, ту структуру, которую получаем.
Два независимых стейта
const [tasks, dispatchTasks] = useReducer(tasksReducer,{
[todolistId1]: [
{id: v1 (), title: ‘HTML&CSS’, isDone: true},
{id: v1 (), title: ‘JS’, isDone: true},
{id: v1 (), title: ‘ReactJS’, isDone: false},
],
[todolistId2]: [
{id: v1 (), title: ‘Rest API’, isDone: true},
{id: v1 (), title: ‘GraphQL’, isDone: false},
],
})
tasks - стейт актуальный на момент перерисовки
dispatchTask - функция, в которую можем отправить в action, которая попадет в reducer, и заставит вернуть новый state, пересохранить и перерисовать всю страницу.