欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 八卦 > localStorage用法

localStorage用法

2025/2/23 4:45:56 来源:https://blog.csdn.net/weixin_63681863/article/details/141133317  浏览:    关键词:localStorage用法

一、localStorage API使用

注意,localStorage 只能存储字符串

1.1 存储数据

例如,对象存储时,可以使用JSON.stringify 转成字符串;

// 假设你有一个对象
const myObject = {name: 'Alice',age: 25,
};// 使用 JSON.stringify 将对象转换为字符串
const serializedObject = JSON.stringify(myObject);// 存储到 localStorage
localStorage.setItem('myKey', serializedObject);

1.2 读取数据

读取时,再用JSON.parse 方法将字符串转换回对象。

// 使用 localStorage.getItem 获取存储的字符串
const storedObjectString = localStorage.getItem('myKey');// 如果存在数据,使用 JSON.parse 将字符串转换回对象
const myObject = storedObjectString ? JSON.parse(storedObjectString) : null;// 使用对象
console.log(myObject);

1.3 react中的使用

完整示例
在 React 组件中,你可以在需要的时候从 localStorage 读取数据,并在组件更新时将数据写入:

import React, { useState, useEffect } from 'react';function MyComponent() {const [myObject, setMyObject] = useState(null);useEffect(() => {// 从 localStorage 读取对象const storedObjectString = localStorage.getItem('myKey');setMyObject(storedObjectString ? JSON.parse(storedObjectString) : null);}, []); // 空依赖数组意味着这个 effect 只在组件挂载时运行一次const saveObjectToLocalStorage = () => {const myObject = {name: 'Alice',age: 25,};localStorage.setItem('myKey', JSON.stringify(myObject));setMyObject(myObject); // 更新状态以反映最新存储的对象};return (<div>{myObject ? (<div><p>Name: {myObject.name}</p><p>Age: {myObject.age}</p></div>) : (<p>No object found in localStorage</p>)}<button onClick={saveObjectToLocalStorage}>Save Object</button></div>);
}export default MyComponent;

1.4 其他方法介绍

在这里插入图片描述参考文章

二、ahook

官方文档介绍
使用这个钩子之后,就和state用法很类似了

import React from 'react';
import { useLocalStorageState } from 'ahooks';export default function () {const [message, setMessage] = useLocalStorageState<string | undefined>('use-local-storage-state-demo1',{defaultValue: 'Hello~',},);return (<><inputvalue={message || ''}placeholder="Please enter some words..."onChange={(e) => setMessage(e.target.value)}/><button style={{ margin: '0 8px' }} type="button" onClick={() => setMessage('Hello~')}>Reset</button><button type="button" onClick={() => setMessage(undefined)}>Clear</button></>);
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词