1. 纯手写设置
读取cookie:
const cookieGet = (name: any) => { let arr = document.cookie.split('; ') for (let i = 0; i < arr.length; i++) { let arr2 = arr[i].split('=') if (arr2[0] === name) { return arr2[1] } } return '' }
存储cookie
const cookieSet = (key: string, value: string, expire: number) => { let now = new Date(new Date().valueOf() + expire * 3600000).toUTCString() if (expire === -1) { now = -1 } document.cookie = `${key}=${value};expires=${now};` }
注意:设置过期时间时需要使用toUTCString转换为UTC格式时间,不然设置的是GTM格式的时间(本案例设置过期时间为1小时,为使用toUTCString转换前实际设置的值为9小时)
2. 插件设置(js-cookie)
包下载:npm install js-cookie
包引用:import Cookies from 'js-cookie'
参考文献:https://blog.csdn.net/fay_ren/article/details/121659064
读取cookie
Cookies.get('name')
存储cookie
Cookies.set('name', 'value', { expires: 1, path: '/' }) // expires设置为1代表一天后过期,如果想设置一天以内的时间需要在当前时间+失效时间(毫秒) let nowTimer = new Date().getTime(); let expiresTime = new Date(nowTimer + 60 * 1000 * 60); Cookies.set('name', 'value', { expires: expiresTime}); // 一小时后过期
删除cookie
Cookies.remove('name')