Vue中 引入使用 js-cookie

本文涉及的产品
.cn 域名,1个 12个月
简介: Vue中 引入使用 js-cookie

1. js-cookie 安装及引入

js-cookie 是关于 cookie 存储的一个js的API,根据官网描述其优点有:适用所有浏览器、接受任何字符、经过任何测试没什么 bug、支持 CMD 和 CommonJS、压缩之后非常小,仅900个字节。

js-cookie npm地址

npm install js-cookie --save

全局引入 (本文第2点以下均以全局引入为例)

// main.js
import jsCookie from 'js-cookie'
Vue.prototype.$cookie = jsCookie;  // 在页面里可直接用 this.$cookie 调用

按需引入

// http.js
import Cookies from 'js-cookie';
Cookies.set('key', 'value');
console.log(Cookies.get('key')); // value

2. 存储(设置) cookie

this.$cookie.set('key', 'value');
// 为 /about 路径设置了一个有效期为 7 天的cookie
this.$cookie.set('name', 'about', { expires: 7});

如上, 第三个参数是个对象, 可设置需要的 cookie 的属性

expires : 定义有效期。如传入Number,则单位为天,也可传入一个Date对象,表示有效期至Date指定时间。默认情况下cookie有效期截止至用户退出浏览器。
path : string,表示此 cookie 对哪个地址可见。默认为”/”。
domain : string,表示此 cookie 对哪个域名可见。设置后 cookie 会对所有子域名可见。默认为对创建此 cookie 的域名和子域名可见。
secure : true 或 false,表示 cookie 传输是否仅支持 https。默认为不要求协议必须为 https。

3. 获取 cookie

// 获得某个cookie
this.$cookie.get('key'); // value
// 获得所有的cookie
this.$cookie.get(); // { key: "value", name: "about"}
// 获得 xxx.xxxx.com 域下的 cookie
this.$cookie.get('name', { domain: 'xxx.xxxx.com' })

4. 删除 cookie

this.$cookie.remove('key');
// 如果值设置了路径,则不能用简单的 remove 方法删除值,需在 remove 时指定路径
this.$cookie.set('id', '123456', { path: '' });
this.$cookie.remove('id');  // 删除失败
this.$cookie.remove('id', { path: '' });  // 删除成功

注意 : 删除不存在的 cookie 不会报错也不会有返回。

5. JSON 用法

cookie 一般只保存 string, 当传入 Array 或对象,而不是简单的 string,那么 js-cookie 会将你传入的数据用 JSON.stringify 悄悄地转换为 string 保存。

this.$cookie.set('name', { key1: 'value1' });
console.log( JSON.parse(this.$cookie.get('name')) ); // { key1: "value1"}
console.log( this.$cookie.get() ); // { name: '{"key1":"value1"}' }

也可用 getJSON 获取 cookie,则 js-cookie 会用 JSON.parse 解析 string 并返回。

this.$cookie.set('name', { key1: 'value1' });
console.log( this.$cookie.getJSON('name') ); // { key1 : "value1" }
console.log( this.$cookie.getJSON() ); // { name: { key1 :"value1" } }

6. 自定义覆盖

通过 withConverter 方法可以覆写默认的 decode 实现,并返回一个新的 cookie 实例。

所有与 decode 有关的 get 操作,如:Cookies.get() 或 Cookies.get(‘name’) 都会先执行此方法中的代码。

document.cookie = 'escaped=%u5317';
document.cookie = 'default=%E5%8C%97';
let cookiesNew = this.$cookie.withConverter((value, name) => {
  if ( name === 'escaped' ) {
    return unescape(value);
  }
});
console.log( cookiesNew .get('escaped') ); // 北
console.log( cookiesNew .get('default') ); // 北
console.log( cookiesNew .get() ); // { escaped: '北', default: '北' }

通过 withConverter 方法也可以覆写默认的 encode 实现,并返回一个新的 cookie 实例。

this.$cookie.withConverter({
  read: function (value, name) {
    // Read converter
  },
  write: function (value, name) {
    // Write converter
  }
});





相关文章
|
1月前
|
JavaScript 前端开发 开发者
VUE 开发——Node.js学习(一)
VUE 开发——Node.js学习(一)
70 3
|
3月前
|
JSON JavaScript 前端开发
JavaScript 详解——Vue基础
【8月更文挑战第16天】
57 3
JavaScript 详解——Vue基础
|
27天前
|
JavaScript 前端开发 持续交付
构建现代Web应用:Vue.js与Node.js的完美结合
【10月更文挑战第22天】随着互联网技术的快速发展,Web应用已经成为了人们日常生活和工作的重要组成部分。前端技术和后端技术的不断创新,为Web应用的构建提供了更多可能。在本篇文章中,我们将探讨Vue.js和Node.js这两大热门技术如何完美结合,构建现代Web应用。
26 4
|
2月前
|
JavaScript 前端开发 API
Vue学习笔记3:对比纯JavaScript和Vue实现数据更新的实时视图显示
Vue学习笔记3:对比纯JavaScript和Vue实现数据更新的实时视图显示
|
1月前
|
JavaScript 前端开发 应用服务中间件
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
155 0
|
1月前
|
JavaScript
深入解析:JS与Vue中事件委托(事件代理)的高效实现方法
深入解析:JS与Vue中事件委托(事件代理)的高效实现方法
43 0
|
1月前
|
JavaScript 前端开发
前端js,vue系统使用iframe嵌入第三方系统的父子系统的通信
前端js,vue系统使用iframe嵌入第三方系统的父子系统的通信
|
2月前
|
前端开发 JavaScript 开发者
Express.js与前端框架的集成:React、Vue和Angular的示例与技巧
本文介绍了如何将简洁灵活的Node.js后端框架Express.js与三大流行前端框架——React、Vue及Angular进行集成,以提升开发效率与代码可维护性。文中提供了详细的示例代码和实用技巧,展示了如何利用Express.js处理路由和静态文件服务,同时在React、Vue和Angular中构建用户界面,帮助开发者快速掌握前后端分离的开发方法,实现高效、灵活的Web应用构建。
57 3
|
2月前
|
JavaScript 前端开发 UED
让 HTML 向 Vue.js 华丽转身:如何把 `wangEditor` 仿腾讯文档项目整合进 Vue.js
让 HTML 向 Vue.js 华丽转身:如何把 `wangEditor` 仿腾讯文档项目整合进 Vue.js
|
3月前
|
JavaScript 前端开发 API
全栈开发革命来临!Vue.js与Node.js联手,打造前后端无缝对接的奇迹之作!
【8月更文挑战第30天】在Web开发领域,前后端分离与协作至关重要。Vue.js以其轻量级和易用性深受前端开发者喜爱,而Node.js则以高性能和事件驱动特性在后端领域崭露头角。二者结合开启了全栈开发新篇章,通过RESTful API或GraphQL实现高效稳定通信。本文以示例说明如何使用Vue.js和Node.js构建全栈应用,从前端Vue组件到后端Express服务器,展示了数据获取与展示的全过程。这种组合提供了一种高效简洁的全栈开发方案,使开发者能更专注于业务逻辑实现。
246 1
下一篇
无影云桌面