轻量级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 相关文章推荐
JScript中使用ADODB.Stream判断文件编码的代码
Jun 09 Javascript
滚动条变色 隐藏滚动条与双击网页自动滚屏显示代码
Dec 28 Javascript
javascript学习笔记(十三) js闭包介绍(转)
Jun 20 Javascript
jquery插件制作教程 txtHover
Aug 17 Javascript
使用jQuery实现图片遮罩半透明坠落遮挡
Mar 16 Javascript
JQuery fileupload插件实现文件上传功能
Mar 18 Javascript
javascript 小数乘法结果错误的处理方法
Jul 28 Javascript
jQuery中map函数的两种方式
Apr 07 jQuery
老生常谈js-react组件生命周期
May 02 Javascript
自适应布局meta标签中viewport、content、width、initial-scale、minimum-scale、maximum-scale总结
Aug 18 Javascript
vue+element实现表单校验功能
May 20 Javascript
vue单应用在ios系统中实现微信分享功能操作
Sep 07 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极大的增强功能和性能
2006/10/09 PHP
php解析xml提示Invalid byte 1 of 1-byte UTF-8 sequence错误的处理方法
2013/11/14 PHP
php对二维数组进行排序的简单实例
2013/12/19 PHP
php根据生日计算年龄的方法
2015/07/13 PHP
PHP目录与文件操作技巧总结(创建,删除,遍历,读写,修改等)
2016/09/11 PHP
Yii框架引用插件和ckeditor中body与P标签去除的方法
2017/01/19 PHP
jquery提示 &quot;object expected&quot;的解决方法
2009/12/13 Javascript
js中window.open()的所有参数详细解析
2014/01/09 Javascript
jQuery寻找n以内完全数的方法
2015/06/24 Javascript
JS实现可直接显示网页代码运行效果的HTML代码预览功能实例
2015/08/06 Javascript
AngularJS 路由和模板实例及路由地址简化方法(必看)
2016/06/24 Javascript
浅谈node模块与npm包管理工具
2018/01/03 Javascript
用JS实现选项卡
2020/03/23 Javascript
JavaScript布尔运算符原理使用解析
2020/05/06 Javascript
webpack安装配置与常见使用过程详解(结合vue)
2020/06/01 Javascript
微信小程序返回上一级页面的实现代码
2020/06/19 Javascript
基于JavaScript实现简单扫雷游戏
2021/01/02 Javascript
js实现有趣的倒计时效果
2021/01/19 Javascript
python操作数据库之sqlite3打开数据库、删除、修改示例
2014/03/13 Python
Python选课系统开发程序
2016/09/02 Python
用yum安装MySQLdb模块的步骤方法
2016/12/15 Python
Django admin美化插件suit使用示例
2017/12/12 Python
详解用python实现基本的学生管理系统(文件存储版)(python3)
2019/04/25 Python
python使用tomorrow实现多线程的例子
2019/07/20 Python
浅谈Django中的QueryDict元素为数组的坑
2020/03/31 Python
让Django的BooleanField支持字符串形式的输入方式
2020/05/20 Python
常用的10个Python实用小技巧
2020/08/10 Python
学习Python需要哪些工具
2020/09/04 Python
python对输出的奇数偶数排序实例代码
2020/12/04 Python
大学生职业生涯规划方案
2014/01/03 职场文书
技能竞赛活动方案
2014/02/21 职场文书
英语专业自荐书
2014/06/13 职场文书
项目申请汇报材料
2014/08/16 职场文书
实现中国梦思想汇报2014
2014/09/13 职场文书
CSS3 制作的图片滚动效果
2021/04/14 HTML / CSS
基于flask实现五子棋小游戏
2021/05/25 Python