存储包含了对localStorage、sessionStorage、cookie、indexDB的常用操作,设置时支持批量设置,导出模块名为storage
- 导入模块
import { storage } from 'gx-instant'
# 方法
# setStore
说明:添加或更新缓存
- 参数
key: string | Array | Object
store的键,当为数组时或对象时,表示批量设置;为对象时,则对象中的key代表键名,value代表键值val:any | Array<any>
store的值,可选,当为数组时,代表批量设置的值,与key数组顺序一一对应,当key为对象时,value不生效,此时可置为nulloptions:Object
可选项,可设置mark,serialize,以及cookie的可选项(支持setCookie
中的可选项参数)options.mark boolean
存储key时是否标识,可选,被标识的key会被存在缓存中。当clear时,如果没有指定key时,会根据此值清除缓存,默认为trueoptions.serialize boolean
存储的数据是否需要序列化,可选,为true,存储引用类型数据时将会通过serialize方法进行序列化,默认为true
- 返回:无
示例
//单个设置,localStore中设置name为tom
setStore('name','tom','localStore')
//批量设置,localStore中设置name为tom,age为18
setStore(['name','age'],['tom',18],'localStore')
//批量设置,localStore中设置name为tom,age为18,等同于第二行
setStore({name:'tom',age:18},null,'localStore')
//批量设置,cookie中设置name为tom,age为18,但不会被标识
setStore({name:'tom',age:18},null,'cookie',{mark:false})
//批量设置,localStore中设置name为tom,age为18,但不会被序列化
setStore({name:'tom',age:18},null,'localStore',{serialize:false})
提示:支持操作 localStorage、sessionStorage、cookie
# setLocalStore
说明:添加或更新本地缓存
- 参数
key: string | Array | Object
store的键,当为数组时或对象时,表示批量设置;为对象时,则对象中的key代表键名,value代表键值val:any | Array<any>
store的值,可选,当为数组时,代表批量设置的值,与key数组顺序一一对应,当key为对象时,value不生效,此时可置为nullisSerialize:boolean
存储值是否被序列化,可选,默认为true
- 返回:无
//单个设置localStore,localStore中设置name为tom
setLocalStore('name','tom')
//批量设置localStore,localStore中设置name为tom,age为18
setLocalStore(['name','age'],['tom',18])
//批量设置localStore,localStore中设置name为tom,age为18
setLocalStore({name:'tom',age:18},null)
//单个设置localStore,localStore中设置name为tom,不进行序列化
setLocalStore('name','tom',false)
# setSessionStore
说明:添加或更新会话缓存
- 参数
key: string | Array | Object
store的键,当为数组时或对象时,表示批量设置;为对象时,则对象中的key代表键名,value代表键值val:any | Array<any>
store的值,可选,当为数组时,代表批量设置的值,与key数组顺序一一对应,当key为对象时,value不生效,此时可置为nullisSerialize:boolean
存储值是否被序列化,可选,默认为true
- 返回:无
//单个设置sessionStore,sessionStore中设置name为tom
setSessionStore('name','tom')
//批量设置sessionStore,sessionStore中设置name为tom,age为18
setSessionStore(['name','age'],['tom',18])
//批量设置sessionStore,sessionStore中设置name为tom,age为18
setSessionStore({name:'tom',age:18},null)
//单个设置sessionStore,sessionStore中设置name为tom,不进行序列化
setSessionStore('name','tom',false)
# setCookie
说明:添加或更新cookie
- 参数
key: string | Array | Object
store的键,当为数组时或对象时,表示批量设置;为对象时,则对象中的key代表键名,value代表键值val:any | Array<any>
store的值,可选,当为数组时,代表批量设置的值,与key数组顺序一一对应,当key为对象时,value不生效,此时可置为nulloptions:Object
cookie配置项,包括expires、maxAge、domain、path、secure、sameSite等cookie设置;选项必须取合法值,否则设置无效options.expires number
过期天数,指距离当前时间的指定天数过期,默认为会话结束时删除cookie,与maxAge互斥options.maxAge number
过期毫秒数,指距离当前时间的指定毫秒数过期,与expires互斥options.isSerialize boolean
存储值是否被序列化,可选,默认为true
- 返回:无
//单个设置cookie,cookie中设置name为tom
setCookie('name','tom')
//批量设置cookie,cookie中设置name为tom,age为18
setCookie(['name','age'],['tom',18])
//批量设置cookie,cookie中设置name为tom,age为18
setCookie({name:'tom',age:18},null)
//单个设置cookie,cookie中设置name为tom,不进行序列化
setCookie('name','tom',false)
# setIndexDB
说明:在IndexDB中添加或设置值
- 参数
key: string | Array<string>
键或键的集合val:any
值
- 返回
Promise<any>
操作的结果回调
# getStore
说明:获取store
- 参数
key:string | Array<string>
键或键的集合type:string
类型,可选,默认是localStore,可选值:localStore,sessionStore,cookiedeserialize:boolean
deserialize 可选,反序列化,为true时,将字符串反序列化为对象,默认true
- 返回
any | Array<any> | false
成功返回相应store或store集合,不成功返回false
# getLocalStore
说明:获取localStore
- 参数
key:string | Array<string>
键或键的集合isDeserialize:boolean
是否反序列化,可选,为true时,将可以反序列化的值进行反序列化,默认为true
- 返回
any | Array<any> | false
成功返回相应store或store集合,不成功返回false
# getSessionStore
说明:获取sessionStore
- 参数
key:string | Array<string>
键或键的集合isDeserialize:boolean
是否反序列化,可选,为true时,将可以反序列化的值进行反序列化,默认为true
- 返回
any | Array<any> | false
成功返回相应store或store集合,不成功返回false
# getCookie
说明:获取cookie
- 参数
key:string | Array<string>
键或键的集合isDeserialize:boolean
是否反序列化,可选,为true时,将可以反序列化的值进行反序列化,默认为true
- 返回
any | Array<any> | false
成功返回相应store或store集合,不成功返回false
# getIndexDB
说明:获取indexDB
- 参数
key:string | Array<string>
键或键的集合
- 返回
Promise<any>
包含相应值或相应值数据的Promise对象。异常时Promise对象状态为rejected,返回异常信息
# hasStore
说明:判断缓存中是否包含相应值
参数
key:string | Array<string>
键或键的集合type string
类型,可选,可取值localStore,sessionStore,cookie。默认为localStore
返回
boolean
判断结果
# removeStore
说明:删除缓存中相应值
参数
key:string | Array<string>
键或键的集合type string
类型,可选,可取值localStore,sessionStore,cookie。默认为localStore
返回
boolean
删除成功返回true,否则返回false
# removeLocalStore
说明:删除localStore
- 参数
key:string | Array<string>
键或键的集合
# removeSessionStore
说明:删除sessionStore
- 参数
key:string | Array<string>
键或键的集合
# removeCookie
说明:删除cookie
- 参数
key:string | Array<string>
键或键的集合
# removeIndexDB
说明:删除indexDB
参数
key:string | Array<string>
键或键的集合
返回
Promise
resolved时返回成功信息,rejected时返回错误信息
# clearStore
说明:清空缓存
参数
isAll:boolean
可选,是否全部清空 默认为truekey:string | Array<string>
键或键的集合,isAll为false时生效type:string
存储类型,可选,默认为localStore,可选sessionStore、cookie,localStore
返回
Promise
resolved时返回成功信息,rejected时返回错误信息
提示
- 当type为cookie时,且isAll为true,此时如果通过setStore设置的数据,且mark为true,则会通过被mark的key删除cookie,否则会报异常,此时应该显示指定要删除的key
- 当type为sessionStore或默认为localStore时,行为等同于store.clear