Использование redux-persist с Vite для сохранения состояния в приложениях React

Redux — это библиотека управления состоянием для приложений JavaScript, часто используемая с React. Он обеспечивает предсказуемый и централизованный способ управления состоянием приложения, упрощая анализ поведения приложения.
Концепция сохраняемости состояния относится к способности приложения сохранять свое состояние даже после закрывается или обновляется. В контексте Redux это означает, что состояние приложения сохраняется в постоянном хранилище, таком как localStorage браузера, sessionStorage или даже в удаленной базе данных. Это позволяет пользователю возобновить сеанс с того места, где он остановился, без потери каких-либо данных или необходимости начинать заново. Сохранение состояния может быть достигнуто с помощью различных средств, таких как использование библиотеки Redux-persist, специально разработанной для этой цели.

Сначала установите необходимые зависимости :

Затем создайте файл store.js, чтобы определить ваш магазин Redux и настроить redux-persist:

В этом примере мы создаем хранилище Redux с начальным состоянием и редюсером. Затем мы используем redux-persist для сохранения состояния в локальном хранилище с помощью механизма хранения. Мы настраиваем redux-persist с помощью объекта persistConfig, который указывает ключ, используемый для сохраняемого состояния (в данном случае root).

Затем мы оборачиваем наше хранилище Redux функцией persistReducer, чтобы создать новый редюсер, включающий логику персистентности. Наконец, мы экспортируем объекты хранилища и персистента для использования в нашем приложении.
Чтобы использовать объект персистента с vite, нам нужно создать файл main.js для инициализации персистента и монтирования нашего приложения:

import React from 'react';
import ReactDOM from 'react-dom';
import { Provider } from 'react-redux';
import { PersistGate } from 'redux-persist/integration/react';
import { store, persistor } from './store';
import App from './App';

persistor.persist(); // Initialize the persistor

ReactDOM.render(
  <Provider store={store}>
    <PersistGate loading={null} persistor={persistor}>
      <App />
    </PersistGate>
  </Provider>,
  document.getElementById('root')
);

В этом примере мы импортируем компоненты Provider и PersistGate из react-redux и redux-persist соответственно. Мы также импортируем наши объекты store и persistor из файла store.js.

Затем мы инициализируем персистент, вызывая его метод persist, и монтируем наше приложение с компонентами Provider и PersistGate. Компонент PersistGate отобразит наше приложение после того, как сохраненное состояние будет загружено из хранилища.

Вот и все! При такой настройке ваше состояние Redux будет автоматически сохраняться в локальном хранилище и регидратироваться при запуске приложения.

Сообщение Шивама Мишры.