Итак, все же, если вы думаете, что сомнения есть там, где они были, давайте разберемся в этом подробнее ниже.

Ниже приведены два примера для понимания.

Пример: 1

import React, { useState, useEffect } from 'react';
function App() {
  const [text, setText] = useState('');

  useEffect(() => {
    const storedText = localStorage.getItem('userInput');
    if (storedText) {
      setText(storedText);
    }
  }, []);

  const handleTextChange = (e) => {
    const value = e.target.value;
    setText(value);
    localStorage.setItem('userInput', value);
  };

  return (
    <div>
      <input type="text" value={text} onChange={handleTextChange} />
      <p>{text}</p>
    </div>
  );
}

export default App;

В этом примере у нас есть простое поле ввода текста и элемент абзаца, который отображает ввод пользователя. Мы используем хук useState для создания текста переменной состояния и функцию setText для ее обновления.

Мы также используем хук useEffect для извлечения сохраненного текста из локального хранилища при монтировании компонента. Метод getItem используется для извлечения данных из локального хранилища с использованием ключа userInput.

В функции handleTextChange мы обновляем текст переменной состояния с помощью нового пользовательского ввода, а затем сохраняем его в локальном хранилище с помощью метода setItem.

Всякий раз, когда пользователь вводит что-то в поле ввода, вызывается функция handleTextChange, которая обновляет состояние и сохраняет новое значение в локальном хранилище.

Наконец, мы визуализируем поле ввода и элемент абзаца, при этом значение поля ввода устанавливается в переменную состояния текста, а элемент абзаца отображает текущее значение переменной состояния текста.

В этом примере показано, как использовать локальное хранилище в React для хранения и извлечения данных, введенных пользователем, даже после перезагрузки страницы. Используя локальное хранилище, мы можем сохранять пользовательские настройки и настройки, хранить данные приложений и улучшать взаимодействие с пользователем.

Пример: 2

import React, { useState, useEffect } from 'react';

function Counter() {
  const [count, setCount] = useState(0);

  // This effect runs only once on mount to retrieve the initial count from local storage
  useEffect(() => {
    const storedCount = localStorage.getItem('count');
    if (storedCount) {
      setCount(parseInt(storedCount));
    }
  }, []);

  // This effect runs every time the count state changes to update the local storage value
  useEffect(() => {
    localStorage.setItem('count', count.toString());
  }, [count]);

  const incrementCount = () => {
    setCount(count + 1);
  };

  const decrementCount = () => {
    setCount(count - 1);
  };

  return (
    <div>
      <h1>Counter: {count}</h1>
      <button onClick={incrementCount}>Increment</button>
      <button onClick={decrementCount}>Decrement</button>
    </div>
  );
}

export default Counter;

В этом примере мы определяем компонент Counter, который использует хук useState для поддержки переменной состояния счетчика и хук useEffect для синхронизации счетчика с локальным хранилищем.

При монтировании мы используем первый хук useEffect для извлечения начального значения счетчика из локального хранилища (если оно существует) и устанавливаем его в качестве начального значения состояния. Это гарантирует, что значение счетчика сохраняется, даже если пользователь обновляет страницу или уходит, а затем возвращается.

Затем мы используем второй хук useEffect для прослушивания изменений в переменной состояния count и соответствующим образом обновляем значение локального хранилища. Это гарантирует постоянную синхронизацию значения счетчика с локальным хранилищем.

Наконец, мы определяем две вспомогательные функции для увеличения и уменьшения счетчика, которые обновляют переменную состояния счетчика при вызове. Эти функции привязаны к кнопкам в методе рендеринга компонента.

В целом, этот пример демонстрирует, как можно использовать локальное хранилище для создания более сложных приложений с отслеживанием состояния в React, которые сохраняют пользовательские данные даже между сеансами браузера.

Пример : 3

Данные формы будут храниться в LocalStorage

import React, { useState } from "react";

const MyForm = () => {
  const [name, setName] = useState("");
  const [email, setEmail] = useState("");
  const [phone, setPhone] = useState("");

  const handleSubmit = (e) => {
    e.preventDefault();
    const formData = { name, email, phone };
    localStorage.setItem("formData", JSON.stringify(formData));
    alert("Form data saved to local storage!");
  };

  return (
    <form onSubmit={handleSubmit}>
      <label>
        Name:
        <input
          type="text"
          value={name}
          onChange={(e) => setName(e.target.value)}
        />
      </label>
      <label>
        Email:
        <input
          type="email"
          value={email}
          onChange={(e) => setEmail(e.target.value)}
        />
      </label>
      <label>
        Phone:
        <input
          type="tel"
          value={phone}
          onChange={(e) => setPhone(e.target.value)}
        />
      </label>
      <button type="submit">Save to Local Storage</button>
    </form>
  );
};

export default MyForm;

Форма :

Как только мы нажмем Сохранить в локальном хранилище

ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ:

  1. Если я закрою браузер и снова перезапущу компьютер, данные останутся в локальном хранилище?

Ответ: Да, если вы закроете браузер и перезагрузите компьютер, данные локального хранилища останутся там, если веб-сайт/приложение не удалили данные и вы не очистили данные своего браузера. Данные локального хранилища хранятся на компьютере пользователя, поэтому они сохраняются в сеансах браузера и даже при перезагрузке компьютера.

2. Сколько времени локальное хранилище будет хранить значение?

Ответ: Значения в локальном хранилище сохраняются до тех пор, пока веб-сайт/приложение не удалит их явным образом или пока пользователь не очистит данные браузера, для значения локального хранилища не установлено время истечения срока действия.

3. Когда мне следует использовать локальное хранилище в моем реагирующем приложении?

Ответ: Локальное хранилище может быть полезно для сохранения пользовательских данных или состояния приложения при перезагрузке страницы или после закрытия браузера. Его также можно использовать для кэширования данных, получение которых с сервера требует больших затрат, таких как большие изображения или видеофайлы.

4. Какие типы данных я храню в локальном хранилище?

Ответ: Локальное хранилище может хранить данные только в виде строк, поэтому вам нужно будет преобразовать любые нестроковые данные (такие как объекты или массивы) в строку, используя «JSON.stringify()», прежде чем сохранять их в локальном хранилище. Затем вы можете использовать «JSON.prase()», чтобы преобразовать строку обратно в исходный тип данных при извлечении ее из локального хранилища.

___________________________Спасибо_____________________________

Если вам понравилось читать этот блог, поделитесь им с друзьями и не забудьте подписаться на наш канал YouTube, чтобы получать больше интересного контента. Помогите нам рассказать о нашем опыте в разработке стека MERN, облачных вычислениях, React Native и Next.js, и следите за новостями, чтобы не пропустить новые информативные статьи. Вместе мы можем покорить мир технологий!

В разделе Проекты Mern Stack вы можете найти учебные пособия, советы, шпаргалки и другие проекты. Наши выступления также посвящены платформам React Framework, таким как NextJs и AWS Cloud. Присоединяйтесь к нам сегодня, чтобы не отставать от новейших технологий.🩷

📠 🏅:- Проекты Mern Stack

🎦 🥇:- Дневник Джары — YouTube 🚦

🎦 🥈 :- Эррормания — YouTube 🚦

На GITHUB:- raj-28 (Raj) (github.com)

💌 Подпишитесь на нашу рассылку, чтобы быть в курсе всех новых блогов 👍

…………🚦…🛣… ……………🚧🛑………………..▶……………….️

Используйте смайлики отсюда, если вам нужны….🚦🛣️🥇🥈🥉🏅🎖️🎦👍