”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 将本地存储 API 与 JavaScript 和 React JS 结合使用

将本地存储 API 与 JavaScript 和 React JS 结合使用

发布于2024-11-06
浏览:409

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 (
    

{theme === "light" ? "Light Mode" : "Dark Mode"}

); } export default App;

কোড বিশ্লেষণ:

  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 }

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 এর মতো অন্যান্য নিরাপদ পদ্ধতি ব্যবহার করা যেতে পারে।

版本声明 本文转载于:https://dev.to/rsmacademybd/using-local-storage-api-with-javascript-and-react-js-19m9?1如有侵犯,请联系[email protected]删除
最新教程 更多>
  • 如何限制动态大小的父元素中元素的滚动范围?
    如何限制动态大小的父元素中元素的滚动范围?
    在交互式接口中实现垂直滚动元素的CSS高度限制问题:考虑一个布局,其中我们具有与用户垂直滚动一起移动的可滚动地图div,同时与固定的固定sidebar保持一致。但是,地图的滚动无限期扩展,超过了视口的高度,阻止用户访问页面页脚。$("#map").css({ marginT...
    编程 发布于2025-05-01
  • 在C#中如何高效重复字符串字符用于缩进?
    在C#中如何高效重复字符串字符用于缩进?
    在基于项目的深度下固定字符串时,重复一个字符串以进行凹痕,很方便有效地有一种有效的方法来返回字符串重复指定的次数的字符串。使用指定的次数。 constructor 这将返回字符串“ -----”。 字符串凹痕= new String(' - ',depth); console.Wr...
    编程 发布于2025-05-01
  • 如何在Java字符串中有效替换多个子字符串?
    如何在Java字符串中有效替换多个子字符串?
    在java 中有效地替换多个substring,需要在需要替换一个字符串中的多个substring的情况下,很容易求助于重复应用字符串的刺激力量。 However, this can be inefficient for large strings or when working with nu...
    编程 发布于2025-05-01
  • 如何使用不同数量列的联合数据库表?
    如何使用不同数量列的联合数据库表?
    合并列数不同的表 当尝试合并列数不同的数据库表时,可能会遇到挑战。一种直接的方法是在列数较少的表中,为缺失的列追加空值。 例如,考虑两个表,表 A 和表 B,其中表 A 的列数多于表 B。为了合并这些表,同时处理表 B 中缺失的列,请按照以下步骤操作: 确定表 B 中缺失的列,并将它们添加到表的末...
    编程 发布于2025-05-01
  • 如何在鼠标单击时编程选择DIV中的所有文本?
    如何在鼠标单击时编程选择DIV中的所有文本?
    在鼠标上选择div文本单击带有文本内容,用户如何使用单个鼠标单击单击div中的整个文本?这允许用户轻松拖放所选的文本或直接复制它。 在单个鼠标上单击的div元素中选择文本,您可以使用以下Javascript函数: function selecttext(canduterid){ if(do...
    编程 发布于2025-05-01
  • 找到最大计数时,如何解决mySQL中的“组函数\”错误的“无效使用”?
    找到最大计数时,如何解决mySQL中的“组函数\”错误的“无效使用”?
    如何在mySQL中使用mySql 检索最大计数,您可能会遇到一个问题,您可能会在尝试使用以下命令:理解错误正确找到由名称列分组的值的最大计数,请使用以下修改后的查询: 计数(*)为c 来自EMP1 按名称组 c desc订购 限制1 查询说明 select语句提取名称列和每个名称...
    编程 发布于2025-05-01
  • 如何将PANDAS DataFrame列转换为DateTime格式并按日期过滤?
    如何将PANDAS DataFrame列转换为DateTime格式并按日期过滤?
    Transform Pandas DataFrame Column to DateTime FormatScenario:Data within a Pandas DataFrame often exists in various formats, including strings.使用时间数据时...
    编程 发布于2025-05-01
  • 如何从PHP中的Unicode字符串中有效地产生对URL友好的sl。
    如何从PHP中的Unicode字符串中有效地产生对URL友好的sl。
    为有效的slug生成首先,该函数用指定的分隔符替换所有非字母或数字字符。此步骤可确保slug遵守URL惯例。随后,它采用ICONV函数将文本简化为us-ascii兼容格式,从而允许更广泛的字符集合兼容性。接下来,该函数使用正则表达式删除了不需要的字符,例如特殊字符和空格。此步骤可确保slug仅包含...
    编程 发布于2025-05-01
  • 如何处理PHP文件系统功能中的UTF-8文件名?
    如何处理PHP文件系统功能中的UTF-8文件名?
    在PHP的Filesystem functions中处理UTF-8 FileNames 在使用PHP的MKDIR函数中含有UTF-8字符的文件很多flusf-8字符时,您可能会在Windows Explorer中遇到comploreer grounder grounder grounder gro...
    编程 发布于2025-05-01
  • Next.js Chrome扩展开发入门指南
    Next.js Chrome扩展开发入门指南
    [2 本文详细介绍了使用next.js创建Chrome扩展的过程,重点是为弹出式的React和实现有效的代码组织。 作者分享了他们的经验,将Twitter主题项目重写为Next.js扩展名,强调了Next.js结构的优势,而不是Create React应用等替代方案。 引用的关键好处是改进的代码组...
    编程 发布于2025-05-01
  • 在Java中使用for-to-loop和迭代器进行收集遍历之间是否存在性能差异?
    在Java中使用for-to-loop和迭代器进行收集遍历之间是否存在性能差异?
    For Each Loop vs. Iterator: Efficiency in Collection TraversalIntroductionWhen traversing a collection in Java, the choice arises between using a for-...
    编程 发布于2025-05-01
  • 为什么Microsoft Visual C ++无法正确实现两台模板的实例?
    为什么Microsoft Visual C ++无法正确实现两台模板的实例?
    The Mystery of "Broken" Two-Phase Template Instantiation in Microsoft Visual C Problem Statement:Users commonly express concerns that Micro...
    编程 发布于2025-05-01
  • Python高效去除文本中HTML标签方法
    Python高效去除文本中HTML标签方法
    在Python中剥离HTML标签,以获取原始的文本表示Achieving Text-Only Extraction with Python's MLStripperTo streamline the stripping process, the Python standard librar...
    编程 发布于2025-05-01
  • 解决Spring Security 4.1及以上版本CORS问题指南
    解决Spring Security 4.1及以上版本CORS问题指南
    弹簧安全性cors filter:故障排除常见问题 在将Spring Security集成到现有项目中时,您可能会遇到与CORS相关的错误,如果像“访问Control-allo-allow-Origin”之类的标头,则无法设置在响应中。为了解决此问题,您可以实现自定义过滤器,例如代码段中的MyFi...
    编程 发布于2025-05-01
  • C++20 Consteval函数中模板参数能否依赖于函数参数?
    C++20 Consteval函数中模板参数能否依赖于函数参数?
    [ consteval函数和模板参数依赖于函数参数在C 17中,模板参数不能依赖一个函数参数,因为编译器仍然需要对非contexexpr futcoriations contim at contexpr function进行评估。 compile time。 C 20引入恒定函数,必须在编译时进行...
    编程 发布于2025-05-01

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3