Список дел на React + Vite + Redux.
Для тех хочет понять как работает Redux.
Без TS для упрощения понимания.
Будет реализована функциональность добавления, удаления и отображения дел.
Стилизации нет, чтобы не отвлекать внимание от главного.
Начнем прямо с чистого листа - создаем новый проект React на Vite, т.к он работает быстрее чем webpack, и установливаем Redux и React-Redux:
В процессе установки присваиваем имя проекту.
Далее выбираем Javascript + JWC.
cd vite-project // переходим в папку проекта
npm install // устанавливаем зависимости
npm i redux // устанавливаем redux
npm i react-redux устанавливаем react-redux
npm run dev // запускаем проект, чтобы убедиться, что все установлено и работает.
Шаг 2: Создание Redux хранилища
Создаем папку redux в корне проекта и добавляем следующие файлы:
export const ADD_TODO = 'ADD_TODO';
export const REMOVE_TODO = 'REMOVE_TODO';
export const addTodo = (todo) => ({
import { ADD_TODO, REMOVE_TODO } from './actions';
const todoReducer = (state = initialState, action) => {
todos: [...state.todos, action.payload],
todos: state.todos.filter((todo) => todo.id !== action.payload),
import { createStore } from 'redux';
import todoReducer from './reducers';
Теперь создадим компоненты для отображения списка дел и формы для добавления новых дел.
import { useSelector, useDispatch } from 'react-redux';
import { removeTodo } from './redux/actions';
const todos = useSelector((state) => state.todos);
const dispatch = useDispatch();
<button onClick={() => dispatch(removeTodo(todo.id))}>Удалить</button>
2. TodoForm.js — форма для добавления дела
import React, { useState } from 'react';
import { useDispatch } from 'react-redux';
import { addTodo } from './redux/actions';
const [text, setText] = useState('');
const dispatch = useDispatch();
dispatch(addTodo({ id: Date.now(), text }));
<form onSubmit={handleSubmit}>
onChange={(e) => setText(e.target.value)}
Шаг 4: Объединение компонентов в App.js
import { Provider } from 'react-redux';
import store from './redux/store';
import TodoList from './TodoList';
Теперь вы можете запустить приложение:
После запуска приложения вы увидите форму для добавления дел и список уже добавленных дел. Вы сможете добавлять новые дела и удалять их из списка.
Этот пример демонстрирует основные принципы работы с Redux в приложении React, включая создание действий, редьюсеров и использование хранилища.