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

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

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

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]删除
最新教程 更多>
  • 如何使用Python有效地以相反顺序读取大型文件?
    如何使用Python有效地以相反顺序读取大型文件?
    在python 反向行读取器生成器 == ord('\ n'): 缓冲区=缓冲区[:-1] 剩余_size- = buf_size lines = buffer.split('\ n'....
    编程 发布于2025-03-25
  • 如何在GO编译器中自定义编译优化?
    如何在GO编译器中自定义编译优化?
    在GO编译器中自定义编译优化 GO中的默认编译过程遵循特定的优化策略。 However, users may need to adjust these optimizations for specific requirements.Optimization Control in Go Compi...
    编程 发布于2025-03-25
  • 如何从Google API中检索最新的jQuery库?
    如何从Google API中检索最新的jQuery库?
    从Google APIS 问题中提供的jQuery URL是版本1.2.6。对于检索最新版本,以前有一种使用特定版本编号的替代方法,它是使用以下语法:获取最新版本:未压缩)While these legacy URLs still remain in use, it is recommended ...
    编程 发布于2025-03-25
  • 如何将MySQL数据库添加到Visual Studio 2012中的数据源对话框中?
    如何将MySQL数据库添加到Visual Studio 2012中的数据源对话框中?
    在Visual Studio 2012 尽管已安装了MySQL Connector v.6.5.4,但无法将MySQL数据库添加到实体框架的“ DataSource对话框”中。为了解决这一问题,至关重要的是要了解MySQL连接器v.6.5.5及以后的6.6.x版本将提供MySQL的官方Visual...
    编程 发布于2025-03-25
  • 如何同步迭代并从PHP中的两个等级阵列打印值?
    如何同步迭代并从PHP中的两个等级阵列打印值?
    同步的迭代和打印值来自相同大小的两个数组使用两个数组相等大小的selectbox时,一个包含country代码的数组,另一个包含乡村代码,另一个包含其相应名称的数组,可能会因不当提供了exply for for for the uncore for the forsion for for ytry...
    编程 发布于2025-03-25
  • 如何有效地选择熊猫数据框中的列?
    如何有效地选择熊猫数据框中的列?
    在处理数据操作任务时,在Pandas DataFrames 中选择列时,选择特定列的必要条件是必要的。在Pandas中,选择列的各种选项。选项1:使用列名 如果已知列索引,请使用ILOC函数选择它们。请注意,python索引基于零。 df1 = df.iloc [:,0:2]#使用索引0和1 c...
    编程 发布于2025-03-25
  • 为什么使用Firefox后退按钮时JavaScript执行停止?
    为什么使用Firefox后退按钮时JavaScript执行停止?
    导航历史记录问题:JavaScript使用Firefox Back Back 此行为是由浏览器缓存JavaScript资源引起的。要解决此问题并确保在后续页面访问中执行脚本,Firefox用户应设置一个空功能。 警报'); }; alert('inline Alert')...
    编程 发布于2025-03-25
  • 如何使用替换指令在GO MOD中解析模块路径差异?
    如何使用替换指令在GO MOD中解析模块路径差异?
    在使用GO MOD时,在GO MOD 中克服模块路径差异时,可能会遇到冲突,其中3个Party Package将另一个PAXPANCE带有导入式套件之间的另一个软件包,并在导入式套件之间导入另一个软件包。如回声消息所证明的那样: go.etcd.io/bbolt [&&&&&&&&&&&&&&&&...
    编程 发布于2025-03-25
  • 如何在鼠标单击时编程选择DIV中的所有文本?
    如何在鼠标单击时编程选择DIV中的所有文本?
    在鼠标上选择div文本单击带有文本内容,用户如何使用单个鼠标单击单击div中的整个文本?这允许用户轻松拖放所选的文本或直接复制它。 在单个鼠标上单击的div元素中选择文本,您可以使用以下Javascript函数: function selecttext(canduterid){ if(do...
    编程 发布于2025-03-25
  • 如何在Java中正确显示“ DD/MM/YYYY HH:MM:SS.SS”格式的当前日期和时间?
    如何在Java中正确显示“ DD/MM/YYYY HH:MM:SS.SS”格式的当前日期和时间?
    如何在“ dd/mm/yyyy hh:mm:mm:ss.ss”格式“ gormat 解决方案:的,请访问量很大,并应为procectiquiestate的,并在整个代码上正确格式不多: java.text.simpledateformat; 导入java.util.calendar; 导入java...
    编程 发布于2025-03-25
  • 在程序退出之前,我需要在C ++中明确删除堆的堆分配吗?
    在程序退出之前,我需要在C ++中明确删除堆的堆分配吗?
    在C中的显式删除 在C中的动态内存分配时,开发人员通常会想知道是否有必要在heap-procal extrable exit exit上进行手动调用“ delete”操作员,但开发人员通常会想知道是否需要手动调用“ delete”操作员。本文深入研究了这个主题。 在C主函数中,使用了动态分配变量(H...
    编程 发布于2025-03-25
  • 如何检查对象是否具有Python中的特定属性?
    如何检查对象是否具有Python中的特定属性?
    方法来确定对象属性存在寻求一种方法来验证对象中特定属性的存在。考虑以下示例,其中尝试访问不确定属性会引起错误: >>> a = someClass() >>> A.property Trackback(最近的最新电话): 文件“ ”,第1行, attributeError:SomeClass实...
    编程 发布于2025-03-25
  • 如何处理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-03-25
  • 如何使用Depimal.parse()中的指数表示法中的数字?
    如何使用Depimal.parse()中的指数表示法中的数字?
    在尝试使用Decimal.parse(“ 1.2345e-02”中的指数符号表示法表示的字符串时,您可能会遇到错误。这是因为默认解析方法无法识别指数符号。 成功解析这样的字符串,您需要明确指定它代表浮点数。您可以使用numbersTyles.Float样式进行此操作,如下所示:[&& && && ...
    编程 发布于2025-03-25
  • 如何在Java中执行命令提示命令,包括目录更改,包括目录更改?
    如何在Java中执行命令提示命令,包括目录更改,包括目录更改?
    在java 通过Java通过Java运行命令命令可能很具有挑战性。尽管您可能会找到打开命令提示符的代码段,但他们通常缺乏更改目录并执行其他命令的能力。 solution:使用Java使用Java,使用processBuilder。这种方法允许您:启动一个过程,然后将其标准错误重定向到其标准输出。...
    编程 发布于2025-03-25

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

Copyright© 2022 湘ICP备2022001581号-3