詳細文檔
js-cookie是一個簡單的,輕量級的處理cookies的js API.
官方文檔:https://www.npmjs.com/package/js-cookie
一個很詳細的博客:https://blog.csdn.net/qq_20802379/article/details/81436634
安裝
yarn add js-cookie 或 npm install js-cookie --save
若安裝出錯,建議安裝較為穩定的2.2.1版本
yarn add js-cookie@2.2.1 或 npm install js-cookie@2.2.1 --save
注冊
一、使用頻率較低,建議隨用隨引,在需要使用的頁面中
import Cookie from "js-cookie"; //引入
Cookies.set('name', 'value') //使用
二、使用頻率較高,建議全局掛載,在main.js中
import Cookie from "js-cookie"; //引入
Vue.prototype.$cookie = Cookie //掛載全局
在所有頁面:this.$cookie.set('name', 'value') //使用
如何使用(以下為常用方式,詳細使用見官方文檔)
【存值】
//創建一個在整個網站上有效的cookie:
Cookies.set('name', 'value');
//創建一個有效期7天的cookie,該cookie在整個網站上均有效:
Cookies.set('name', 'value', { expires: 7 });
//創建一個有效期7天的cookie,該cookie對當前頁面的路徑有效:
Cookies.set('name', 'value', { expires: 7, path: '' });
//創建一個有效期為5天4小時3分2秒的cookie,該cookie在整個網站上均有效
let expireDate=new Date(new Date().getTime() + 5*24*60*60*1000 + 4*60*60*1000 + 3*60*1000 + 2*1000)
Cookies.set('name', 'value', { expires: expireDate });
【取值】
Cookies.get('name'); // => 'value'
Cookies.get('nothing'); // => undefined
//獲取所有cookie
Cookies.get(); // => { name: 'value' }
【刪除值】
Cookies.remove('name');
//如果值設置了路徑,那么不能用簡單的delete方法刪除值,需要在delete時指定路徑
Cookies.set('name', 'value', { path: '' });
Cookies.remove('name'); // 刪除失敗
Cookies.remove('name', { path: '' }); // 刪除成功
//注意,刪除不存在的cookie不會報錯也不會有返回
【存取json】可使用js-cookie自帶語法,也可自行使用JSON.stringify()和JSON.parse()處理(注意兩種方法不可混用)
自行處理(推薦):
存儲:Cookie.set("books",JSON.stringify(this.booklist))
獲取:JSON.parse(Cookie.get("books"))
自帶語法:詳見官方文檔
使用限制
只能存儲文本
存儲大小限制:單條數據不大於4KB
存儲數量限制:一般50條
讀取域名限制:不可跨域讀取
存儲時效限制:每個cookie都有時效,最短的有效期是會話級別(即瀏覽器關閉時cookie便銷毀)