vue 项目中封装cookie、cache

我们在项目中通常会对cookie进行一些操作,为了便于全局调用cookie,会对cookie的设置、获取及删除方法进行封装成一个工具类。

首先我们在src目录下创建一个utils文件夹,在utils下创建cookies.js,代码如下:

// cookies封装
const cookies = {
  // 设置cookie
  setCookie(name, value, expiredays) {
    const exDate = new Date()
    exDate.setDate(exDate.getDate() + expiredays)
    document.cookie = name + '=' + escape(value) + ((expiredays == null) ? '' : ';expires=' + exDate.toGMTString())
  },

  // 获取cookie
  getCookie(name) {
    let arr
    let reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)')
    if ((arr = document.cookie.match(reg)) != null) {
      return (arr[2])
    } else {
      return null
    }
  },

  // 删除cookie
  removeCookie(name) {
    var exp = new Date()
    exp.setTime(exp.getTime() - 1)
    var cval = this.getCookie(name)
    if (cval != null) {
      document.cookie = name + '=' + cval + ';expires=' + exp.toGMTString()
    }
  }
}

export default cookies

这样我们在调用的时候直接引入调用即可,比如我们再对缓存进行封装,在cookies.js同级目录下创建cache.js,代码如下:

// 引入cookies
import cookies from './cookies'

export default {
  // 获取key
  getItem(key, defaultValue = '') {
    // 获取cookie
    const value = cookies.getCookie(key)
    return value
      ? atob(decodeURIComponent(value))
      : localStorage.getItem(key) || defaultValue
  },
  // 设置
  setItem (key, value, expiresAfterDays = 7) {
    if (!value) {
      cookies.removeCookie(key)
      localStorage.removeItem(key)
      return
    }
    cookies.setCookie(key, btoa(value), expiresAfterDays)
    localStorage.setItem(key, value)
  },
  // 删除
  removeItem(key) {
    cookies.removeCookie(key)
    localStorage.removeItem(key)
  }
}

这样我们再进行使用的时候,可以直接通过cache操作本地缓存或cookie即可,如:

import cache from './cache'

// 设置Auth-Token
cache.setItem('Auth-Token', 'token-xxxxxxxxxx')
// 获取Auth-Token
let authToken = cache.getItem('Auth-Token')

对axios的封装和使用可见此篇:vue 中 axios 封装及使用

That’s all ~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值