自定义封装一个cookie

1.设置cookie

参数说明:

key cookie的名称 
value cookie的值 
time cookie的过期时间 秒  

// 设置cookie
    function setItem(key, value, time) {
        let expires = null

        // 判断传过来time没有,设置cookie过期时间,若没有为会话级
        if (time) {
            let d = new Date()
            let times = d.getTime() + time * 1000
            d.setTime(times)
            expires = d.toUTCString()
        }
        document.cookie = `${key}=${value};expires=` + expires
    } 

 2.获取单个cookie

// 获取单个cookie的值
    function getItem(key) {
        let obj = {}
        let arr = document.cookie.split('; ')
        arr.forEach(it => {
            let res = it.split('=')
            obj[res[0]] = res[1]
        })
        return obj[key]
    }

3.删除单个cookie

这里应用的原理就是调用设置cookie的函数把你要删除的cookie的过期时间设置为-1,它已经过期自动移除了

    // 删除单个cookie
    function removeItem(key) {
        setItem(key, 0, -1)
    }

4.清空cookie

清空所用cookie就是将所有cookie获取到后遍历数组然后调用删除单个cookie的函数进行过期处理

// 清除所有的cookie
    function clear() {
        let obj = {}
        let arr = document.cookie.split('; ')
        arr.forEach(it => {
            let res = it.split('=')
            removeItem(res[0])
        })
    }

 5.整理封装到一个自执行函数当中后得到一个自定义的cookie方法:

const cookie = (function () {
    /* 
      @params {String} key cookie的名称 
      @params {String} value cookie的值 
      @params {Number} time cookie的过期时间 秒  
    */
    // 设置cookie
    function setItem(key, value, time) {
        let expires = null

        // 判断传过来time没有,设置cookie过期时间,若没有为会话级
        if (time) {
            let d = new Date()
            let times = d.getTime() + time * 1000
            d.setTime(times)
            expires = d.toUTCString()
        }
        document.cookie = `${key}=${value};expires=` + expires
    }
    // 获取单个cookie的值
    function getItem(key) {
        let obj = {}
        let arr = document.cookie.split('; ')
        arr.forEach(it => {
            let res = it.split('=')
            obj[res[0]] = res[1]
        })
        return obj[key]
    }

    // 删除单个cookie
    function removeItem(key) {
        setItem(key, 0, -1)
    }
    // 清除所有的cookie
    function clear() {
        let obj = {}
        let arr = document.cookie.split('; ')
        arr.forEach(it => {
            let res = it.split('=')
            removeItem(res[0])
        })
    }

    let cookie = {
        setItem,
        getItem,
        removeItem,
        clear
    }
    return cookie
})()

6.调用

调用的时候将完整代码放入一个js文件当中,在你需要使用的文件里引入这个js文件

设置cookie:cookie.setItem(cookie名,cookie值,过期时间)

获取cookie:cookie.getItem(cookie名)

删除单个cookie:cookie.removeItem(cookie名,0,-1)

清空cookie:cookie.clear()

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值