创建cookie
// 创建cookie
Cookies.set('key', 'value');
// expires-创建有效期为30天的cookie
Cookies.set('key', 'value', { expires: 30 });
// path - 为home页创建有效期30天的cookie
Cookies.set('key', 'value', { expires: 30, path: '/home' });
// 参数介绍
expires:定义有效期
Number:天,
Date:至指定日期
默认:退出浏览器
path:cookie对哪个地址可见
string:地址
默认: '/'。
domain:cookie对哪个域名可见
string:可见域名,对子域名均可见;设置后cookie会对所有子域名可见。
默认:对创建此cookie的域名和子域名可见。
secure
Boolean:表示cookie传输是否仅支持https。
默认:http。
取值
// 获取cookie
Cookies.get('key'); // 'value'|| undefined
// 获取所有cookie
Cookies.get(); // => { key: 'value' }
删除
// 删除cookie
Cookies.remove('key');
// 若设置path,删除时同样也得携带path
Cookies.remove('name', { path: '' });
// 删除不存在的cookie时不报错
命名空间
noConflict方法定义一个新的cookie,不与原cookies的命名冲突
var Cookies2 = Cookies.noConflict();
Cookies2.set('key', 'value');
json相关
js-cookie允许你向cookie中存储json信息。
set方法,传入的值为Array或对象时,会将数据JSON.stringify转换为string保存。
Cookies.set('key', { key: 'value' });
Cookies.get('key'); // '{"key":"value"}'
Cookies.get(); // { key: '{"key":"value"}' }
//可用getJSON方法获取cookie
Cookies.getJSON('key'); // => { key: 'value' }
Cookies.getJSON(); // => { key: { key: 'value' } }
其他
1.read
通过withConverter方法可以覆写默认的decode实现,并返回一个新的cookie实例。所有与decode有关的get操作,如Cookies.get()或Cookies.get(‘name’)都会先执行此方法中的代码。
document.cookie = 'escaped=%u5317';
document.cookie = 'default=%E5%8C%97';
var cookies = Cookies.withConverter(function (value, name) {
if ( name === 'escaped' ) {
return unescape(value);
}
});
cookies.get('escaped'); // 北
cookies.get('default'); // 北
cookies.get(); // { escaped: '北', default: '北' }
2.write
通过withConverter方法也可以覆写默认的encode实现,并返回一个新的cookie实例。
Cookies.withConverter({
read: function (value, name) {
// Read converter
},
write: function (value, name) {
// Write converter
}
});