安装

  1. $ npm i js-cookie --save

或者用cdn引入

  1. <script
  2. type="module"
  3. src="https://cdn.jsdelivr.net/npm/js-cookie@rc/dist/js.cookie.min.mjs"
  4. ></script>

使用

引入

  1. import Cookies from 'js-cookie'

设置cookie

  1. Cookies.set('name', 'value') // 简单设置,浏览器关闭后消失
  2. Cookies.set('name', { foo: 'bar' }); // 储存对象,自动使用JSON.stringify转换成字符串
  3. Cookies.set('name', 'value', { secure: true }); // 使用https协议创建
  4. // 时效
  5. Cookies.set('name', 'value', { expires: 7 }) //设置保存7天
  6. Cookies.set('name', 'value', { expires: 7, path: '' }) // 设置保存7天,可以设置这个cookie只针对某个页面路径生效
  7. var inFifteenMinutes = new Date(new Date().getTime() + 15 * 60 * 1000);
  8. Cookies.set('foo', 'bar', { // 保存15分钟
  9. expires: inFifteenMinutes
  10. });

读取cookie

  1. Cookies.get('name') // => 'value'
  2. Cookies.get('nothing') // => undefined
  3. Cookies.get() // => { name: 'value' } // 获取所有cookie
  4. Cookies.getJSON('name'); // => { foo: 'bar' } 根据JSON.parse解析存储在cookie中的字符串的表示的对象

删除cookie

  1. Cookies.remove('name');
  2. // 删除针对某页面生效的cookie,必须针对性删除
  3. Cookies.set('name', 'value', { path: '' });
  4. Cookies.remove('name'); // fail!
  5. Cookies.remove('name', { path: '' }); // removed!

注意:删除不存在的cookie不会引发任何异常,也不会返回任何值。

封装

可以封装到一个文件里面,

  1. import Cookies from 'js-cookie'
  2. /**
  3. * 获取所有Cookies
  4. * @returns Object
  5. */
  6. export function getAllCookies() {
  7. return Cookies.get()
  8. }
  9. /**
  10. * 获取指定的Cookies
  11. * @param {String} key
  12. * @returns String
  13. */
  14. export function getCookies(key = "") {
  15. return Cookies.get(key)
  16. }
  17. /**
  18. * 设置Cookies
  19. * @param {String} key 设置的键
  20. * @param {String | Object} value 设置的值,可以是对象,会自动转成JSON
  21. * @param {Object} option 可选,设置的选项,
  22. * option 的属性有:
  23. * secure - Boolean,使用https协议创建
  24. * expires - Number, 保存天数,可以通过var inFifteenMinutes = new Date(new Date().getTime() + 15 * 60 * 1000) 保存分钟数
  25. * path - String,只针对某个路径有效
  26. * @returns
  27. */
  28. export function setCookies(key = "", value = "", option = {}) {
  29. if (JSON.stringify(data) == "{}") {
  30. return Cookies.set(key, value)
  31. } else {
  32. Cookies.set(key, value, option)
  33. }
  34. }