vue3封装cookie

该代码实现了一个用于设置、获取和删除浏览器Cookie的JavaScript函数库。setCookie函数接受一个包含键值对、过期时间、域和路径的对象参数,getCookie函数通过键来获取Cookie值,而removeCookie函数则用于删除指定键的Cookie。
摘要由CSDN通过智能技术生成
/**
 * 设置cookie - setCookie(option)
 * @param {Object}   option                   参数
 * @param {String}   option -- key            键
 * @param {String}   option -- value          值
 * @param {Number}   option -- expireDays     过期时间
 * @param {Number}   option -- domain         域
 * @param {Number}   option -- routing        路径
 */
interface CookieType {
  key: string
  value: string
  expireDays?: number
  domain?: string
  routing?: string
}
export const setCookie = function (option: CookieType) {
  let optionDefault: CookieType = {
    key: '',
    value: '',
    expireDays: 3,
    domain: '',
    routing: '/',
  }
  optionDefault = { ...option }
  const exdate = new Date()
  let cookie
  cookie = `${optionDefault.key}=${encodeURIComponent(optionDefault.value)}`
  optionDefault.domain && (cookie += `; domain=${optionDefault.domain}`)
  optionDefault.routing && (cookie += `; routing=${optionDefault.routing}`)
  optionDefault.expireDays && exdate.setDate(exdate.getDate() + optionDefault.expireDays);
  optionDefault.expireDays && (cookie += `; expires=${exdate}`)
  console.log('cookie', cookie)
  document.cookie = cookie
}

/**
 * 获取cookie - getCookie(key)
 * @param  {Object}   key                 键
 * @result {*}        result              返回cookie值,没有就返回空
 */
export const getCookie = function (key: string) {
  const _cookie = document.cookie
  const itemsArr = _cookie.split('; ')
  let item = []
  for (let i = 0; i < itemsArr.length; i++) {
    item = itemsArr[i].split('=')
    if (key === item[0] && item.length === 2) {
      return decodeURIComponent(item[1])
    }
  }
  return ''
}

/**
 * 删除cookie - removeCookie(key)
 * @param  {Object}   key                 键
 */
export const removeCookie = function (key: string) {
  const date = new Date()
  date.setDate(date.getDate() - 10000 * 3600 * 31)
  document.cookie = `${key}=; path=/; domain=winshangdata.com; expires = ${date.toString()}`
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值