Как сохранить данные формы пользователя в localStorage и получить их

При разработке легковесных приложений нам следует избегать использования базы данных, в этом случае мы можем использовать localStorage или сессии. В этом блоге я покажу, как получить пользовательские данные из форму и сохраните (и извлеките!) ее в localStorage.

  1. Что такое LocalStorage?

👉🏻 LocalStorage — это объект, который позволяет сайтам и приложениям JavaScript сохранять пары «ключ-значение» в веб-браузере, которые могут выдерживать обновление страниц и перезапуск браузера. Он имеет встроенные методы, такие как — setItem(), getItem(), RemoveItem(), Clear(). Думаю, то, что делают эти методы, самоочевидно.

2. Сохранение данных Пользователя в нашем localStorage.

👉🏻 Давайте напишем код для получения введенных пользователем данных через форму и сохранения их в нашем локальном хранилище. Кроме того, давайте отображать значения по клику. Найдите ссылку на код здесь. Давайте разберем код шаг за шагом 👇🏽

3. Создайте простую форму для получения введенных пользователем данных и сохраните ее в нашей переменной состояния. В моем примере я обновляю свое имя, адрес электронной почты и номер данными пользователя и handleSubmission для обработки пользовательских данных, см. фрагмент ниже 👇🏽

  const [name, setName] = useState("");
  const [email, setEmail] = useState("");
  const [number, setNumber] = useState("");


         <label htmlFor="name"> Name </label>
          <input
            type="text"
            name="email"
            placeholder="Type your name"
            onChange={(e) => setName(e.target.value)}
            value={editData ?name : ''}
          />
          <label htmlFor="email"> Email </label>
          <input
            type="email"
            name="email"
            placeholder="Type your email"
            onChange={(e) => setEmail(e.target.value)}
            value={editData ? email : ''}
          />
          <label htmlFor="number"> Number </label>
          <input
            type="number"
            name="num"
            placeholder="Type your number"
            onChange={(e) => setNumber(e.target.value)}
            value={editData ? number :''}
          />
          <button onClick={handleSubmission}>Store my data</button>

Теперь, когда у нас есть данные, мы сохраним их в локальном хранилище и перезагрузим страницу. Сначала я очистил свое локальное хранилище, поэтому, даже если в ключе «userInfo» уже есть какие-то другие данные, они будут удалены.

function handleSubmission() {
    localStorage.clear();
    let userData = {
      Name: name,
      Email: email,
      Number: number,
    };
    localStorage.setItem("userInfo", JSON.stringify(userData));
    alert("Data recorded!");
    window.location.reload();
  }

› Что такое JSON.stringify() 🙄 — это метод преобразования объекта или значения JS в JSON, который обычно используется, когда вы хотите сохранить данные в формате, который можно легко сохранить в диск или отправлен по сети. В нашем примере объект userData преобразуется в строку, поскольку данные, хранящиеся в локальном хранилище, могут храниться только в строках.

› Получение пользовательских данных из локального хранилища. Это довольно просто, в localStorage есть разные методы, один из которых — .get(). Я сохранил свои данные в переменной userInfo и обновил состояния для доступа к ним в моем JSX. См. фрагмент ниже 👇🏽

  let userInfo = "";
  function toggleGetData() {
    setData(true);
    userInfo = JSON.parse(localStorage.getItem("userInfo"));
   
    setName(userInfo.Name);
    setEmail(userInfo.Email);
    setNumber(userInfo.Number);
  }

// displaying my data from the localStorage on click
         {data && (
            <>
              <div className="data">
                <div> Name - {name}</div>
                <div> Email - {email}</div>
                <div> Number - {number}</div>
              </div>
            </>
          )}

Совет: всегда не забывайте анализировать строку, которую мы получаем из локального хранилища, иначе мы не сможем получить доступ к отдельным ключам!

Вот и все, ребята! Доступ ко всему коду здесь — код

Я публикую 2 блога в неделю о JavaScript и React, исходя из собственного опыта разработки. Посмотрите другие мои блоги здесь — Радхика. Ставьте лайк, делитесь и подписывайтесь, чтобы узнать больше💃🏽