轻量级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 相关文章推荐
jQuery版Tab标签切换
Mar 16 Javascript
jquery ready(fn)事件使用介绍
Aug 21 Javascript
仿百度输入框智能提示的js代码
Aug 22 Javascript
JavaScript 获取任一float型小数点后两位的小数
Jun 30 Javascript
网站基于flash实现的Banner图切换效果代码
Oct 14 Javascript
Node.js实现兼容IE789的文件上传进度条
Sep 02 Javascript
微信小程序 for 循环详解
Oct 09 Javascript
Vue自定义图片懒加载指令v-lazyload详解
Dec 31 Javascript
antd Upload 文件上传的示例代码
Dec 14 Javascript
微信小程序拍照和摄像功能实现方法示例
Feb 01 Javascript
JS实现简单省市二级联动
Nov 27 Javascript
webpack proxy 使用(代理的使用)
Jan 10 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文件怎么打开 如何执行php文件
2011/12/21 PHP
分享一下贝贝成长进度的php代码
2012/09/14 PHP
php上传图片到指定位置路径保存到数据库的具体实现
2013/12/30 PHP
phpmyadmin打开很慢的解决方法
2014/04/21 PHP
PHP 序列化和反序列化函数实例详解
2020/07/18 PHP
win10下 php安装seaslog扩展的详细步骤
2020/12/04 PHP
js正确获取元素样式详解
2009/08/07 Javascript
input的focus方法使用
2010/03/13 Javascript
JS中setTimeout()的用法详解
2013/04/14 Javascript
setInterval计时器不准的问题解决方法
2014/05/08 Javascript
Dojo Javascript 编程规范 规范自己的JavaScript书写
2014/10/26 Javascript
使用Browserify配合jQuery进行编程的超级指南
2015/07/28 Javascript
值得分享的轻量级Bootstrap Table表格插件
2016/05/30 Javascript
利用JS实现文字的聚合动画效果
2017/01/22 Javascript
vue-router:嵌套路由的使用方法
2017/02/21 Javascript
Bootstrap Table 在指定列中添加下拉框控件并获取所选值
2017/07/31 Javascript
在js代码拼接dom对象到页面上的模板总结
2018/10/21 Javascript
Angular PWA使用的Demo示例
2019/01/31 Javascript
JavaScript交换两个变量方法实例
2019/11/25 Javascript
Python中的super()方法使用简介
2015/08/14 Python
剖析Python的Tornado框架中session支持的实现代码
2015/08/21 Python
matplotlib绘制动画代码示例
2018/01/02 Python
python celery分布式任务队列的使用详解
2019/07/08 Python
Django CBV与FBV原理及实例详解
2019/08/12 Python
如何用Python徒手写线性回归
2021/01/25 Python
Net Remoting把服务器端激活两种模式
2014/01/22 面试题
健康家庭事迹材料
2014/05/02 职场文书
放飞理想演讲稿
2014/09/09 职场文书
有限责任公司股东合作协议书
2014/12/02 职场文书
高三英语教学计划
2015/01/23 职场文书
奖励通知
2015/04/22 职场文书
预防艾滋病宣传活动总结
2015/05/09 职场文书
导游词之绍兴柯岩古镇
2020/01/09 职场文书
Java Socket实现Redis客户端的详细说明
2021/05/26 Redis
Spring Data JPA使用JPQL与原生SQL进行查询的操作
2021/06/15 Java/Android
Python 的 sum() Pythonic 的求和方法详细
2021/10/16 Python