轻量级JS Cookie插件js-cookie的使用方法


Posted in Javascript onMarch 22, 2018

Cookie是网站设计者放置在客户端的小文本文件,一般后台语言使用的比较多,可以实现用户个性化的一些需求。js-cookie插件是一个JS操作cookie的插件,源文件只有3.34 KB,非常轻量级。js-cookie也支持npm和Bower安装和管理。下面看看js-cookie的具体用法。

A simple, lightweight JavaScript API for handling cookies

Works in all browsers
Accepts any character
Heavily tested
No dependency
Unobtrusive JSON support
Supports AMD/CommonJS
RFC 6265 compliant
Useful Wiki
Enable custom encoding/decoding
~900 bytes gzipped!

引用方法:

1、引入js-cookie.js

1.直接饮用cdn:<script src="https://cdn.jsdelivr.net/npm/js-cookie@2/src/js.cookie.min.js"></script>

2.本地下载下来后:<script src="/path/to/js.cookie.js"></script>

3.模块化开发时: import Cookies from 'js-cookie'

2、js-cookie.js常用的API和方法

a、设置cookie

Cookies.set('name', 'value', { expires: 7, path: '' });//7天过期

Cookies.set('name', { foo: 'bar' });//设置一个json

b、读取cookie

Cookies.get('name');//获取cookie

Cookies.get(); #读取所有的cookie

c、删除cookie

Cookies.remove('name'); #删除cookie时必须是同一个路径。

下面是国外的介绍

Basic Usage

Create a cookie, valid across the entire site:

Cookies.set('name', 'value');

Create a cookie that expires 7 days from now, valid across the entire site:

Cookies.set('name', 'value', { expires: 7 });

Create an expiring cookie, valid to the path of the current page:

Cookies.set('name', 'value', { expires: 7, path: '' });

Read cookie:

Cookies.get('name'); // => 'value'
Cookies.get('nothing'); // => undefined

Read all visible cookies:

Cookies.get(); // => { name: 'value' }

Delete cookie:

Cookies.remove('name');

Delete a cookie valid to the path of the current page:

Cookies.set('name', 'value', { path: '' });
Cookies.remove('name'); // fail!
Cookies.remove('name', { path: '' }); // removed!

IMPORTANT! When deleting a cookie, you must pass the exact same path and domain attributes that were used to set the cookie, unless you're relying on the default attributes.

Note: Removing a nonexistent cookie does not raise any exception nor return any value.

Namespace conflicts

If there is any danger of a conflict with the namespace Cookies, the noConflict method will allow you to define a new namespace and preserve the original one. This is especially useful when running the script on third party sites e.g. as part of a widget or SDK.

// Assign the js-cookie api to a different variable and restore the original "window.Cookies"

var Cookies2 = Cookies.noConflict();
Cookies2.set('name', 'value');

Note: The .noConflict method is not necessary when using AMD or CommonJS, thus it is not exposed in those environments.

JSON

js-cookie provides unobtrusive JSON storage for cookies.

When creating a cookie you can pass an Array or Object Literal instead of a string in the value. If you do so, js-cookie will store the string representation of the object according to JSON.stringify:

Cookies.set('name', { foo: 'bar' });

When reading a cookie with the default Cookies.get api, you receive the string representation stored in the cookie:

Cookies.get('name'); // => '{"foo":"bar"}'
Cookies.get(); // => { name: '{"foo":"bar"}' }

When reading a cookie with the Cookies.getJSON api, you receive the parsed representation of the string stored in the cookie according to JSON.parse:

Cookies.getJSON('name'); // => { foo: 'bar' }
Cookies.getJSON(); // => { name: { foo: 'bar' } }

Note: To support IE6-7 (and IE 8 compatibility mode) you need to include the JSON-js polyfill: https://github.com/douglascrockford/JSON-js

更多的可以参考官方说明:

https://github.com/js-cookie/js-cookie

https://www.npmjs.com/package/js-cookie

Javascript 相关文章推荐
Javascript写了一个清除“logo1_.exe”的杀毒工具(可扫描目录)
Feb 09 Javascript
JavaScript传递变量: 值传递?引用传递?
Feb 22 Javascript
始终在屏幕中间显示Div的代码(css+js)
Mar 10 Javascript
兼容所有浏览器的js复制插件Zero使用介绍
Mar 19 Javascript
使用不同的方法结合/合并两个JS数组
Sep 18 Javascript
jquery.gridrotator实现响应式图片展示画廊效果
Jun 23 Javascript
浅谈jquery拼接字符串效率比较高的方法
Feb 22 Javascript
关于react-router的几种配置方式详解
Jul 24 Javascript
详解node child_process模块学习笔记
Jan 24 Javascript
通过vue提供的keep-alive减少对服务器的请求次数
Apr 01 Javascript
node Buffer缓存区常见操作示例
May 04 Javascript
JavaScript实现字符串与HTML格式相互转换
Mar 17 Javascript
浅谈Webpack 持久化缓存实践
Mar 22 #Javascript
深入浅析Vue.js中 computed和methods不同机制
Mar 22 #Javascript
Java设计中的Builder模式的介绍
Mar 22 #Javascript
使用vue-route 的 beforeEach 实现导航守卫(路由跳转前验证登录)功能
Mar 22 #Javascript
收集前端面试题之url、href、src
Mar 22 #Javascript
vue 的keep-alive缓存功能的实现
Mar 22 #Javascript
bootstrap中selectpicker下拉框使用方法实例
Mar 22 #Javascript
You might like
PHP入门速成(2)
2006/10/09 PHP
不要轻信 PHP_SELF的安全问题
2009/09/05 PHP
PHP的array_diff()函数在处理大数组时的效率问题
2011/11/27 PHP
一个完整的php文件上传类实例讲解
2015/10/27 PHP
详解PHP的Yii框架中日志的相关配置及使用
2015/12/08 PHP
php实现在线通讯录功能(附源码)
2016/05/13 PHP
ExtJS 2.2.1的grid控件在ie6中的显示问题
2009/05/04 Javascript
修改jquery里的dialog对话框插件为框架页(iframe) 的方法
2010/09/14 Javascript
ie下动态加态js文件的方法
2011/09/13 Javascript
什么是 AngularJS?AngularJS简介
2014/12/06 Javascript
使用Browserify配合jQuery进行编程的超级指南
2015/07/28 Javascript
js+canvas简单绘制圆圈的方法
2016/01/28 Javascript
详解JavaScript异步编程中jQuery的promise对象的作用
2016/05/03 Javascript
Extjs让combobox写起来简洁又漂亮
2017/01/05 Javascript
详解Angular 4.x NgTemplateOutlet
2017/05/24 Javascript
Vue组件化通讯的实例代码
2017/06/23 Javascript
vue-cli webpack 引入jquery的方法
2018/01/10 jQuery
JavaScript面试中常考的字符串操作方法大全(包含ES6)
2020/05/10 Javascript
JavaScript判断数据类型有几种方法及区别介绍
2020/09/02 Javascript
使用webpack和rollup打包组件库的方法
2021/02/25 Javascript
Python的函数的一些高阶特性
2015/04/27 Python
tensorflow学习笔记之mnist的卷积神经网络实例
2018/04/15 Python
Python爬虫将爬取的图片写入world文档的方法
2018/11/07 Python
详解Tensorflow不同版本要求与CUDA及CUDNN版本对应关系
2020/08/04 Python
Python爬取微信小程序通用方法代码实例详解
2020/09/29 Python
HTML5 Canvas实现图片缩放、翻转、颜色渐变的代码示例
2016/02/28 HTML / CSS
单身旅行者的单身假期:Just You
2018/04/08 全球购物
美国领先的在线旅游网站:Orbitz
2018/11/05 全球购物
贝佳斯官方网站:Borghese
2020/05/08 全球购物
送给程序员的20个Java集合面试问题
2014/08/06 面试题
聚美优品陈欧广告词
2014/03/14 职场文书
2014年保管员工作总结
2014/11/18 职场文书
暑期社会实践个人总结
2015/03/06 职场文书
师范生教育见习总结
2015/06/23 职场文书
村官2015年度工作总结
2015/10/14 职场文书
Python进度条的使用
2021/05/17 Python