Logo

dev-resources.site

for different kinds of informations.

Using Local Storage API With JavaScript And React JS

Published at
9/30/2024
Categories
webdev
javascript
localstorageapi
rsmacademybd
Author
rsmacademybd
Author
12 person written this
rsmacademybd
open
Using Local Storage API With JavaScript And React JS

JavaScript āĻāĻŦāĻ‚ React āĻ Local Storage API āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻ†āĻ˛ā§‹āĻšāĻ¨āĻž

JavaScript āĻāĻŦāĻ‚ React āĻ Local Storage API āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ–ā§āĻŦ āĻ—ā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ āĻāĻ•āĻŸāĻŋ āĻ•āĻ¨āĻ¸ā§‡āĻĒā§āĻŸ, āĻ¯āĻž āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡āĻ° āĻĄā§‡āĻŸāĻž āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ°ā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻ¤ā§‡ āĻĄā§‡āĻŸāĻž āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ°ā§‡ āĻ¸ā§‡āĻ­ āĻ•āĻ°āĻž āĻĨāĻžāĻ•ā§‡ āĻāĻŦāĻ‚ āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ° āĻŦāĻ¨ā§āĻ§ āĻŦāĻž āĻ°āĻŋāĻĢā§āĻ°ā§‡āĻļ āĻ•āĻ°āĻ˛ā§‡āĻ“ āĻĄā§‡āĻŸāĻž āĻšāĻžāĻ°āĻŋāĻ¯āĻŧā§‡ āĻ¯āĻžāĻ¯āĻŧ āĻ¨āĻžāĨ¤

Local Storage āĻāĻ° āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯:

  1. Key-Value Pair Storage: Local storage āĻĄā§‡āĻŸāĻž key-value pair āĻ†āĻ•āĻžāĻ°ā§‡ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°ā§‡āĨ¤
  2. Persistent Storage: āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ° āĻŦāĻ¨ā§āĻ§ āĻšāĻ“āĻ¯āĻŧāĻžāĻ° āĻĒāĻ°ā§‡āĻ“ āĻĄā§‡āĻŸāĻž āĻĨāĻžāĻ•ā§‡āĨ¤
  3. String Data: Local storage āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° string āĻĄā§‡āĻŸāĻž āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤
  4. 5MB Data Limit: Local storage āĻ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ 5MB āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻĄā§‡āĻŸāĻž āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻž āĻ¯āĻžāĻ¯āĻŧāĨ¤
  5. No Expiry Date: Cookies āĻāĻ° āĻŽāĻ¤ā§‹ Local storage āĻāĻ° āĻ•ā§‹āĻ¨ā§‹ expiration time āĻĨāĻžāĻ•ā§‡ āĻ¨āĻžāĨ¤

Local Storage Methods:

  1. localStorage.setItem(key, value): āĻĄā§‡āĻŸāĻž āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻ¤ā§‡ āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻšāĻ¯āĻŧāĨ¤
  2. localStorage.getItem(key): āĻĄā§‡āĻŸāĻž āĻ°āĻŋāĻŸā§āĻ°āĻŋāĻ­ āĻ•āĻ°āĻ¤ā§‡ āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻšāĻ¯āĻŧāĨ¤
  3. localStorage.removeItem(key): āĻ•ā§‹āĻ¨ā§‹ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ key āĻāĻ° āĻĄā§‡āĻŸāĻž āĻŽā§āĻ›ā§‡ āĻĢā§‡āĻ˛āĻ¤ā§‡ āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻšāĻ¯āĻŧāĨ¤
  4. localStorage.clear(): āĻ¸āĻŦ āĻĄā§‡āĻŸāĻž āĻŽā§āĻ›ā§‡ āĻĢā§‡āĻ˛āĻ¤ā§‡ āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻšāĻ¯āĻŧāĨ¤

React āĻ Local Storage āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°:

React āĻ, local storage āĻĄā§‡āĻŸāĻž āĻŽā§āĻ¯āĻžāĻ¨ā§‡āĻœ āĻ•āĻ°āĻ¤ā§‡ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ React āĻāĻ° useEffect āĻāĻŦāĻ‚ useState āĻšā§āĻ• āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻ¤ā§‡ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻŸāĻŋ āĻ¯āĻ–āĻ¨ āĻĒā§āĻ°āĻĨāĻŽ āĻ˛ā§‹āĻĄ āĻšāĻ¯āĻŧ āĻŦāĻž āĻ†āĻĒāĻĄā§‡āĻŸ āĻšāĻ¯āĻŧ, āĻ¤āĻ–āĻ¨ āĻĄā§‡āĻŸāĻž local storage āĻĨā§‡āĻ•ā§‡ āĻ†āĻ¨āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§€ āĻ¸ā§‡āĻ­ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤

āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ:

React āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ theme āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡ āĻĻā§‡āĻ–āĻžāĻ¨ā§‹ āĻšāĻ˛ā§‹, āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻĨāĻŋāĻŽā§‡āĻ° āĻ¤āĻĨā§āĻ¯ local storage āĻ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻž āĻšāĻŦā§‡āĨ¤

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

function App() {
  // local storage āĻĨā§‡āĻ•ā§‡ theme āĻ†āĻ¨āĻ¤ā§‡ useState āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡
  const [theme, setTheme] = useState(() => {
    return localStorage.getItem("theme") || "light";
  });

  // useEffect āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ local storage āĻ theme āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡
  useEffect(() => {
    localStorage.setItem("theme", theme);
  }, [theme]);

  // āĻĨāĻŋāĻŽ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ function
  const toggleTheme = () => {
    setTheme((prevTheme) => (prevTheme === "light" ? "dark" : "light"));
  };

  return (
    <div className={`App ${theme}`}>
      <h1>{theme === "light" ? "Light Mode" : "Dark Mode"}</h1>
      <button onClick={toggleTheme}>
        Switch to {theme === "light" ? "Dark" : "Light"} Mode
      </button>
    </div>
  );
}

export default App;
Enter fullscreen mode Exit fullscreen mode

āĻ•ā§‹āĻĄ āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖ:

  1. useState: āĻāĻ–āĻžāĻ¨ā§‡ theme state āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻāĻŦāĻ‚ initial value local storage āĻĨā§‡āĻ•ā§‡ āĻ¨āĻŋāĻ¯āĻŧā§‡ āĻ¨ā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻ¯āĻĻāĻŋ local storage āĻ āĻ•ā§‹āĻ¨ā§‹ theme āĻ¨āĻž āĻĨāĻžāĻ•ā§‡, āĻ¤āĻžāĻšāĻ˛ā§‡ default light āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤

  2. useEffect: āĻ¯āĻ–āĻ¨āĻ‡ theme state āĻ†āĻĒāĻĄā§‡āĻŸ āĻšāĻ¯āĻŧ, āĻ¤āĻ–āĻ¨ useEffect āĻĢāĻžāĻ‚āĻļāĻ¨ āĻ°āĻžāĻ¨ āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻ¨āĻ¤ā§āĻ¨ theme local storage āĻ āĻ¸ā§‡āĻ­ āĻ•āĻ°ā§‡ āĻĻā§‡āĻ¯āĻŧāĨ¤

  3. toggleTheme: āĻāĻ‡ āĻĢāĻžāĻ‚āĻļāĻ¨ā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻĨāĻŋāĻŽ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¯āĻž light āĻĨā§‡āĻ•ā§‡ dark āĻŦāĻž dark āĻĨā§‡āĻ•ā§‡ light āĻ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤

Local Storage āĻ Object āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ:

Local storage āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° string āĻĄā§‡āĻŸāĻž āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻ¤āĻžāĻ‡ āĻ¯āĻĻāĻŋ āĻ•ā§‹āĻ¨ā§‹ object āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻžāĻ¨, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ¸ā§‡āĻŸāĻŋāĻ•ā§‡ JSON.stringify() āĻĻāĻŋāĻ¯āĻŧā§‡ string āĻ āĻ°ā§‚āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻāĻŦāĻ‚ JSON.parse() āĻĻāĻŋāĻ¯āĻŧā§‡ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ object āĻ āĻ°ā§‚āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤

āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ:

// Object āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻž
const user = { name: "John", age: 30 };
localStorage.setItem("user", JSON.stringify(user));

// Object āĻ°āĻŋāĻŸā§āĻ°āĻŋāĻ­ āĻ•āĻ°āĻž
const storedUser = JSON.parse(localStorage.getItem("user"));
console.log(storedUser); // Output: { name: "John", age: 30 }
Enter fullscreen mode Exit fullscreen mode

React āĻ Local Storage āĻāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ—ā§‡āĻ° āĻ•āĻŋāĻ›ā§ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ:

  1. User Authentication: āĻ˛āĻ—āĻ‡āĻ¨ āĻ•āĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ° āĻ¤āĻĨā§āĻ¯ local storage āĻ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ, āĻ¯āĻžāĻ¤ā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€āĻ¤ā§‡ āĻ…ā§āĻ¯āĻžāĻĒ āĻ–ā§āĻ˛āĻ˛ā§‡ āĻ†āĻŦāĻžāĻ° āĻ˛āĻ—āĻ‡āĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻ¨āĻž āĻšāĻ¯āĻŧāĨ¤
  2. Theme Settings: āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ° āĻĒāĻ›āĻ¨ā§āĻĻā§‡āĻ° āĻĨāĻŋāĻŽ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ, āĻ¯āĻžāĻ¤ā§‡ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€āĻ¤ā§‡ āĻ¸ā§‡ āĻ…ā§āĻ¯āĻžāĻĒ āĻ–ā§āĻ˛āĻ˛ā§‡ āĻ†āĻ—ā§‡āĻ° āĻĨāĻŋāĻŽ āĻ°āĻŋāĻŽā§‡āĻŽā§āĻŦāĻžāĻ° āĻšāĻ¯āĻŧāĨ¤
  3. Shopping Cart: āĻ‡-āĻ•āĻŽāĻžāĻ°ā§āĻ¸ āĻ¸āĻžāĻ‡āĻŸā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ° āĻļāĻĒāĻŋāĻ‚ āĻ•āĻžāĻ°ā§āĻŸā§‡āĻ° āĻ¤āĻĨā§āĻ¯ local storage āĻ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻž āĻ¯āĻžāĻ¯āĻŧāĨ¤

āĻāĻ‡āĻ­āĻžāĻŦā§‡ React āĻ local storage āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ†āĻĒāĻ¨āĻŋ āĻĄā§‡āĻŸāĻž persistent āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ āĻāĻŦāĻ‚ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ° āĻ…āĻ­āĻŋāĻœā§āĻžāĻ¤āĻž āĻ‰āĻ¨ā§āĻ¨āĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤

Local Storage āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¸āĻ¤āĻ°ā§āĻ•āĻ¤āĻž: Local storage āĻ sensitive āĻĄā§‡āĻŸāĻž āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻž āĻ‰āĻšāĻŋāĻ¤ āĻ¨āĻ¯āĻŧ, āĻ•āĻžāĻ°āĻŖ āĻāĻŸāĻŋ āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ-āĻ¸āĻžāĻ‡āĻĄ āĻ āĻ¸ā§āĻŸā§‹āĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻ¸āĻšāĻœā§‡āĻ‡ āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ āĻ•āĻ°āĻž āĻ¯āĻžāĻ¯āĻŧāĨ¤ Sensitive āĻĄā§‡āĻŸāĻž āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖā§‡āĻ° āĻœāĻ¨ā§āĻ¯ sessionStorage āĻŦāĻž cookies āĻāĻ° āĻŽāĻ¤ā§‹ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ¨āĻŋāĻ°āĻžāĻĒāĻĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤

rsmacademybd Article's
15 articles in total
Favicon
Redux Middleware āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻ†āĻ˛ā§‹āĻšāĻ¨āĻž
Favicon
Describing the React UI
Favicon
JavaScript āĻāĻŦāĻ‚ React āĻ Debounce āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻ†āĻ˛ā§‹āĻšāĻ¨āĻž
Favicon
Using Local Storage API With JavaScript And React JS
Favicon
Web Storage API Explained with Examples
Favicon
Web History API Explained with Examples
Favicon
Event Propagation - Bubbling vs Capturing Explained with Examples
Favicon
React Props Explained with Examples
Favicon
JavaScript Event Delegation āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻ†āĻ˛ā§‹āĻšāĻ¨āĻž
Favicon
Recursion in JavaScript āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻ†āĻ˛ā§‹āĻšāĻ¨āĻž
Favicon
Currying in JavaScript āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻ†āĻ˛ā§‹āĻšāĻ¨āĻž
Favicon
Higher-Order Functions (HOFs) āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻ†āĻ˛ā§‹āĻšāĻ¨āĻž
Favicon
JavaScript Execution Context āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻ†āĻ˛ā§‹āĻšāĻ¨āĻž
Favicon
JavaScript Closures āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻ†āĻ˛ā§‹āĻšāĻ¨āĻž
Favicon
Install React Router Dom With Tailwind CSS

Featured ones: