ikStore
导入方式
import { ikStore } from 'iking-utils'
cookie
ikStore.cookie 继承了cookiejs的所有方法。
forage
ikStore.forage 继承了localforage的所有方法。
localStore
一个与浏览器的localStorage交互的实用程序对象。
has
检查给定的键是否存在于localStorage中
<script setup>
const local = {
has: (key: string) => {
return Object.prototype.hasOwnProperty.call(localStorage, key)
}
}
<script>
参数说明
参数值 | 类型 | 参数值说明 |
---|---|---|
key | String | 要检查的键 |
<script setup>
import { ikStore } from 'iking-utils'
console.log(ikStore.local.has('userInfo')); // Output: false
<script>
setItem
在localStorage中设置一个项
<script setup>
const local = {
setItem: (name: string, value: any, time: number = 0) => {
const nowTime = new Date().getTime();
const overTime = paramType.isDate(time) ? nowTime + time * 1000 : 0;
localStorage.setItem(name, JSON.stringify({
value,
overTime
}))
},
}
<script>
参数说明
参数值 | 类型 | 默认值 | 参数值说明 |
---|---|---|---|
name | String | - | 项目的名称 |
value | any | - | 要存储的值 |
time | number | 0 | 可选。以秒为单位的过期时间。默认为0(永不过期) |
<script setup>
import { ikStore } from 'iking-utils'
ikStore.local.setItem('userInfo', {name: '九牧', id: '32342'})
<script>
getItem
从localStorage中检索一个项目。
如果它存在并且没有过期,返回存储值,否则为null。
<script setup>
const local = {
getItem: (name: string) => {
const paramStr = localStorage.getItem(name);
// 不存在
if (!paramStr) return null;
const param = JSON.parse(paramStr);
// 已过期
if (new Date().getTime() > param.overTime && param.overTime !== 0) {
localStorage.removeItem(name);
return null
}
// 返回值
return param.value;
},
}
<script>
参数说明
参数值 | 类型 | 默认值 | 参数值说明 |
---|---|---|---|
name | String | - | 要检索的项目的名称 |
<script setup>
import { ikStore } from 'iking-utils'
ikStore.local.getItem('userInfo')
// ikStore.local.getItem('userInfo') outPut: {name: '九牧', id: '32342'}
<script>
removeItem
从localStorage中移除一个项目。
<script setup>
const local = {
removeItem: (name: string) => {
name && localStorage.removeItem(name);
},
}
<script>
参数说明
参数值 | 类型 | 默认值 | 参数值说明 |
---|---|---|---|
name | String | - | 要删除的项的名称 |
<script setup>
import { ikStore } from 'iking-utils'
ikStore.local.removeItem('userInfo')
<script>
clear
清除localStorage。
<script setup>
clear: (name: string) => {
if (name)
localStorage.removeItem(name);
else
localStorage.clear();
},
<script>
参数说明
参数值 | 类型 | 参数值说明 |
---|---|---|
name | String | 可选参数。 如果提供,则只删除具有指定名称的项,如未提供,所有项目将被移除 |
<script setup>
import { ikStore } from 'iking-utils'
ikStore.local.clear()
<script>
size
以千字节为单位计算localStorage占用的总大小。
返回以千字节为单位的总大小。
<script setup>
size: () => {
// 获取所有localStorage键名
const keys = Object.keys(localStorage)
// 计算总大小(单位:字节)
let totalSize = 0
for (let i = 0; i < keys.length; i++) {
const key = keys[i]
const value = localStorage.getItem(key) || ''
// 键名和键值都是字符串类型,每个字符占两个字节
const size = (key.length + value.length) * 2
totalSize += size
}
// 将字节转换为KB并四舍五入
const totalSizeInKB = Math.round(totalSize / 1024)
return totalSizeInKB
}
<script>
<script setup>
import { ikStore } from 'iking-utils'
ikStore.local.size()
<script>
sessionStore
sessionStore对象提供了管理sessionStorage中的数据的方法。
has
检查sessionStorage是否有一个特定的键。如果键存在,则返回true,否则返回false。
<script setup>
const session = {
has: (key: string) => {
return Object.prototype.hasOwnProperty.call(sessionStorage, key)
}
}
<script>
参数说明
参数值 | 类型 | 参数值说明 |
---|---|---|
key | String | 要检查的键 |
<script setup>
import { ikStore } from 'iking-utils'
console.log(ikStore.session.has('userInfo')); // Output: false
<script>
setItem
设置sessionStorage中的一个项。它接受一个名称(键)和一个值作为参数。可选地,您可以提供一个时间参数来设置项的过期时间(以秒为单位)。如果没有提供时间,该项目将不会过期。
<script setup>
const session = {
setItem: (name: string, value: any, time: number = 0) => {
const nowTime = new Date().getTime();
const overTime = time ? nowTime + time * 1000 : 0;
sessionStorage.setItem(name, JSON.stringify({
value,
overTime
}))
},
}
<script>
参数说明
参数值 | 类型 | 默认值 | 参数值说明 |
---|---|---|---|
name | String | - | 项目的名称 |
value | any | - | 要存储的值 |
time | number | 0 | 可选。以秒为单位的过期时间。默认为0(永不过期) |
<script setup>
import { ikStore } from 'iking-utils'
ikStore.session.setItem('userInfo', {name: '九牧', id: '32342'})
<script>
getItem
从sessionStore中检索一个项目。
如果它存在并且没有过期,返回存储值,否则为null。
<script setup>
const session = {
getItem: (name: string) => {
const paramStr = sessionStorage.getItem(name);
// 不存在
if (!paramStr) return null;
const param = JSON.parse(paramStr);
// 已过期
if (new Date().getTime() > param.overTime && param.overTime !== 0) {
sessionStorage.removeItem(name);
return null
}
// 返回值
return param.value;
},
}
<script>
参数说明
参数值 | 类型 | 默认值 | 参数值说明 |
---|---|---|---|
name | String | - | 要检索的项目的名称 |
<script setup>
import { ikStore } from 'iking-utils'
ikStore.session.getItem('userInfo')
// ikStore.session.getItem('userInfo') outPut: {name: '九牧', id: '32342'}
<script>
removeItem
根据项的名称(key)从sessionStorage中删除项。如果name参数为空,则不执行任何操作。
<script setup>
const local = {
removeItem: (name: string) => {
name && sessionStorage.removeItem(name);
},
}
<script>
参数说明
参数值 | 类型 | 参数值说明 |
---|---|---|
name | String | 要删除的项的名称 |
<script setup>
import { ikStore } from 'iking-utils'
ikStore.session.removeItem('userInfo')
<script>
clear
清空sessionStorage。如果提供了名称,则只删除具有该名称的项。如果没有提供名称,它将清除sessionStorage中的所有项。
<script setup>
clear: (name: string) => {
if (name)
sessionStorage.removeItem(name);
else
sessionStorage.clear();
},
<script>
参数说明
参数值 | 类型 | 参数值说明 |
---|---|---|
name | String | 可选参数。 如果提供,则只删除具有指定名称的项,如未提供,所有项目将被移除 |
<script setup>
import { ikStore } from 'iking-utils'
ikStore.session.clear()
<script>
size
以KB为单位计算sessionStorage的总大小。它遍历sessionStorage中的所有键,并计算每个键值对的大小。大小是通过将键和值的长度乘以2来计算的(因为每个字符占用2字节)。然后将总大小四舍五入到最接近的千字节并返回。
<script setup>
// 计算sessionStorage占用空间
size: () => {
// 获取所有sessionStorage键名
const keys = Object.keys(sessionStorage)
// 计算总大小(单位:字节)
let totalSize = 0
for (let i = 0; i < keys.length; i++) {
const key = keys[i]
const value = sessionStorage.getItem(key) || ''
const size = (key.length + value.length) * 2 // 键名和键值都是字符串类型,每个字符占两个字节
totalSize += size
}
const totalSizeInKB = Math.round(totalSize / 1024) // 将字节转换为KB并四舍五入
return totalSizeInKB
}
<script>
<script setup>
import { ikStore } from 'iking-utils'
ikStore.session.size()
<script>