cookie操作的封装
代码如下
const Cookies = {
// setCookie,第三参数是时间 第四参数是时间单位
setItem(key, value, expires = null, expiresType = "day") {
if (expires === null) {
return document.cookie = `${key}=${value}`
}
let date = new Date();
let Type = expiresType.toLowerCase()
switch (Type) {
case "year":
date.setFullYear(date.getFullYear() + expires)
break;
case "month":
date.setMonth(date.getMonth() + expires)
break;
case "day":
date.setDate(date.getDate() + expires)
break;
case "hour":
date.setHours(date.getHours() + expires)
break;
case "minute":
date.setMinutes(date.getMinutes() + expires)
break;
case "second":
date.setSeconds(date.getSeconds() + expires)
break;
}
document.cookie = `${key}=${value};expires=${date}`
},
// 回去cooie
getItem(key) {
let val;
let data = document.cookie.split("; ");
for (let i = 0, len = data.length; i < len; i++) {
let [name, value] = data[i].split("=");
if (name == key) {
val = value;
break;
}
}
return val;
},
// 清除某个cookie
removeItem(key) {
this.setItem(key, null, -1);
},
// 获取所有keys
keys() {
let keyArr = [];
let data = document.cookie.split("; ");
for (let i = 0, len = data.length; i < len; i++) {
let [name] = data[i].split("=");
keyArr.push(name)
}
return keyArr;
},
// 获取所有valuse
values() {
let valArr = [];
let data = document.cookie.split("; ");
for (let i = 0, len = data.length; i < len; i++) {
let [name, val] = data[i].split("=");
valArr.push(val)
}
return valArr;
},
// 清空所以
clear() {
let arr = this.keys();
arr.forEach(ele => this.setItem(ele, null, -1));
}
}