当前位置: 首页 > news >正文

Vue3 + TypeScript 本地存储 localStorage 的用法

1、字符串

直接操作

// 存储表格列宽
localStorage.setItem(`${tableName.value}_${prop}_colWidth`, newWidth.toString());// 获取表格列宽
let storageColWidth = localStorage.getItem(`${tableName.value}_${prop}_colWidth`);// 删除本地存储的列宽数据
localStorage.removeItem(`${tableName.value}_${prop}_colWidth`);

2、对象

写:JSON.stringify

读:JSON.parse

  // 定义表格列宽对象interface ITableColumnWidth {// 列标识符[key: string]: number;}// 表格列宽对象const tableColumnWidth = ref<ITableColumnWidth>({});// 表格列宽 keyconst tableColKey = computed(() => `${tableName.value}_colWidth`);// 存储表格列宽localStorage.setItem(tableColKey.value, JSON.stringify(tableColumnWidth.value));// 获取表格列宽const loadColumnWidthFormLocalStorage = () => {try {let value = localStorage.getItem(tableColKey.value);// 处理空值情况if (!value) {return;}// 安全解析并验证类型let parsed = JSON.parse(value);// 普通对象 {} 或 new Object() 创建的对象if (Object.prototype.toString.call(parsed) === "[object Object]") {tableColumnWidth.value = parsed;} else {console.warn("Invalid localStorage data format.");}} catch (e) {console.error("Error parsing localStorage data:", e);}};// 删除本地存储的列宽数据localStorage.removeItem(tableColKey.value);

3、数组 

写:JSON.stringify

读:JSON.parse

// 本地存储的申领用途
const localStoragePurposeSet = ref<Set<string>>(new Set());// 保存申领用途到 localStorage
const savePurposeToLocalStorage = () => {// 创建新 Set 以触发响应式更新const newSet = new Set(localStoragePurposeSet.value);newSet.add(purposeVal.value.trim());// 更新响应式数据localStoragePurposeSet.value = newSet;// 存储到 localStorage,需转换为数组(Set 集合不能直接存储到 localStorage 中,需要转换为数组)const purposes = Array.from(newSet);localStorage.setItem("reagentApplyPurposes", JSON.stringify(purposes));
};// 从 localStorage 中获取申领用途
const getPurposeFormLocalStorage = () => {try {const storedData = localStorage.getItem("reagentApplyPurposes");// 处理空值情况if (!storedData) {localStoragePurposeSet.value = new Set();return;}// 安全解析并验证类型const parsed: unknown = JSON.parse(storedData);if (Array.isArray(parsed) && parsed.every((item) => typeof item === "string")) {localStoragePurposeSet.value = new Set(parsed as string[]);} else {console.warn("Invalid localStorage data format. Resetting to empty Set.");localStoragePurposeSet.value = new Set();}} catch (e) {console.error("Error parsing localStorage data:", e);localStoragePurposeSet.value = new Set();}
};
http://www.lryc.cn/news/571635.html

相关文章:

  • 【时时三省】(C语言基础)内部函数和外部函数
  • Cornerstone3D 2.x升级调研
  • EPLAN P8 2.9 如何使用.step格式3D文件绘制3D安装布局图
  • 用idea操作git缓存区回退、本地库回退、远程库回退
  • Oracle client 静默安装
  • 【八股消消乐】构建微服务架构体系—一致性抽象
  • react 自定义状态管理库
  • sql_mode(二)宽松模式和严格模式的区别
  • CHASE、CoSQL、SPARC概念介绍
  • 以list为输入条件,查询数据库表,java中的mapper层和mybatis层应该怎么写?
  • 裸金属服务器深度评测:云计算时代的性能与安全担当​​​​
  • centos 7单机安装ceph并创建rbd块设备
  • 博世X阿里云:智能座舱接入通义大模型!
  • MYSQL进阶超详细总结2.0
  • CppCon 2017 学习:CNL: A Compositional Numeric Library
  • Zephyr 高阶实践:彻底讲透 west 构建系统、模块管理与跨平台 CI/CD 配置
  • 微信小程序-数据加密
  • 数据结构 栈与队列 6.18
  • Vue3 × DataV:三步上手炫酷数据可视化组件库
  • Matplotlib快速入门
  • 2D写实交互数字人:让AI形象拥有“真人温度“的技术革命
  • 《HTTP权威指南》 第1-2章 HTTP和URL基础
  • C#实现图片文字识别
  • 【Pandas】pandas DataFrame unstack
  • LVS+Keepalived高可用群集
  • 【请关注】真实案例pg及kong安装部署
  • CppCon 2017 学习:C++ in Academia
  • GNU Octave 基础教程(2):变量与数据类型详解(一)
  • 技术与情感交织的一生 (八)
  • Git中新创建分支是否为空?这可得视情况而定!