存储包含了对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不生效,此时可置为null
    • options:Object 可选项,可设置mark,serialize,以及cookie的可选项(支持setCookie中的可选项参数)
    • options.mark boolean 存储key时是否标识,可选,被标识的key会被存在缓存中。当clear时,如果没有指定key时,会根据此值清除缓存,默认为true
    • options.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不生效,此时可置为null
    • isSerialize: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不生效,此时可置为null
    • isSerialize: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不生效,此时可置为null
    • options: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,cookie
    • deserialize: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 可选,是否全部清空 默认为true
    • key: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