English | 简体中文
一款浏览器端的极简 Cookie 操作插件。
从 1.x 升级到 2.x: 可以查看 CHANGELOG.md
NPM:
npm install tiny-cookie
ES2015 (推荐)
// 可以一次引入所有方法
import * as Cookies from 'tiny-cookie'
// 或者,可以按需引入方法
import { isEnabled, get, set, remove } from 'tiny-cookie'
// 可以直接引入方法别名
import { isCookieEnabled, getCookie, setCookie, removeCookie } from 'tiny-cookie'
tiny-cookie 会在全局作用域添加一个Cookie
对象。或者,也可以把它作为一个
CommonJS/AMD/ES2015 模块引入 (推荐)。
别名: isCookieEnabled
检测浏览器是否支持 cookie。
别名: getCookie
获取名称为key
的 cookie 值,默认使用decodeURIComponent
解码。
别名: getRawCookie
获取名称为key
的原始 cookie 值。
别名: getAllCookies
获取所有 cookie 值,默认使用decodeURIComponent
解码。
别名: setCookie
设置一个名称为key
的 cookie,使用encodeURIComponent
编码。options
参数是一个对象,其属性可以是合法的 cookie 属性值,比如path
(默认:根路径/
)、domain
、expires
/max-age
、samesite
或secure
。(备注:如果secure
的值为一个真值,比如true
,就会被设置,否则不会被设置)。
import { setCookie } from 'tiny-cookie';
const now = new Date;
now.setMonth(now.getMonth() + 1);
setCookie('foo', 'Foo', { expires: now.toGMTString() });
expires
属性值可以是一个Date
对象,一个可被Date.parse()
解析的日期字符串,一个整数(单位:天),或者一个带时间后缀的数值字符串。
单位后缀 | 含义 |
---|---|
Y | 年 |
M | 月 |
D | 天 |
h | 日 |
m | 分 |
s | 秒 |
示例
import { setCookie } from 'tiny-cookie';
const date = new Date;
date.setDate(date.getDate() + 21);
setCookie('dateObject', 'A date object', { expires: date });
setCookie('dateString', 'A parsable date string', { expires: date.toGMTString() });
setCookie('integer', 'Seven days later', { expires: 7 });
setCookie('stringSuffixY', 'One year later', { expires: '1Y' });
setCookie('stringSuffixM', 'One month later', { expires: '1M' });
setCookie('stringSuffixD', 'One day later', { expires: '1D' });
setCookie('stringSuffixh', 'One hour later', { expires: '1h' });
setCookie('stringSuffixm', 'Ten minutes later', { expires: '10m' });
setCookie('stringSuffixs', 'Thirty seconds later', { expires: '30s' });
别名: setRawCookie
设置一个 Cookie 值,无编码。
别名: removeCookie
从当前域名移除名称为key
的 cookie 值。如果你想移除父域名下的 cookie,可以使用options
参数,比如remove('cookieName', { domain: 'parentdomain.com' })
。
- 怎么使用 JSON 编解码?
可以通过下面代码实现自己的 cookie 获取和设置方法,使用 JSON 编解码。
import { getCookie, setCookie } from 'tiny-cookie';
export const getJSON = (key) => getCookie(key, JSON.parse);
export const setJSON = (key, value, options) => setCookie(key, value, JSON.stringify, options);
MIT.