Skip to content

Latest commit

 

History

History
138 lines (87 loc) · 4.09 KB

README_zh-CN.md

File metadata and controls

138 lines (87 loc) · 4.09 KB

tiny-cookie

Node.js CI codecov npm npm

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 模块引入 (推荐)。

接口

isEnabled()

别名: isCookieEnabled

检测浏览器是否支持 cookie。

get(key)

别名: getCookie

获取名称为key的 cookie 值,默认使用decodeURIComponent解码。

getRaw(key)

别名: getRawCookie

获取名称为key的原始 cookie 值。

getAll()

别名: getAllCookies

获取所有 cookie 值,默认使用decodeURIComponent解码。

set(key, value, options)

别名: setCookie

设置一个名称为key的 cookie,使用encodeURIComponent编码。options参数是一个对象,其属性可以是合法的 cookie 属性值,比如path(默认:根路径/)、domainexpires/max-agesamesitesecure。(备注:如果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' });

setRaw(key, value, options)

别名: setRawCookie

设置一个 Cookie 值,无编码。

remove(key, options)

别名: removeCookie

从当前域名移除名称为key的 cookie 值。如果你想移除父域名下的 cookie,可以使用options参数,比如remove('cookieName', { domain: 'parentdomain.com' })

问题

  1. 怎么使用 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.