0%

vue-cookies

适用于vue项目的cookie插件。

参考文档:

Vue.js插件的安装和使用文档。

cookie属性介绍

原生js操作cookie,访问这篇博客(设置为全局Vue方法,可以使用Vue.prototype)。

Vue-cookie插件

–安装–

方式一:script标签引入

1
2
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<script src="https://unpkg.com/vue-cookies@1.7.4/vue-cookies.js"></script>

方式二:安装到vue项目中

1
npm或cnpm install vue-cookies --save

导入(在main.js文件中导入一次即可)

1
2
import VueCookies from 'vue-cookies'
Vue.use(VueCookies)

–使用–

语法格式:[this | Vue].$cookies.[method]

全局配置

默认值: expireTimes(过期时间) = 1d, path = ‘/‘, domain = ‘’, secure = ‘’, sameSite = ‘Lax’

1
2
$cookies.config(expireTimes[,path[, domain[, secure[, sameSite]]])
$cookies.config(过期时间[,路径[, 域名[, 是否使用https模式[, 是否限制第三方Cookie]]])

y-年,m-月,d-天,h-小时,min-分钟,s-秒,默认单位为秒(忽略大小写)

Secure属性指定浏览器只有在加密协议 HTTPS 下,才能将这个 Cookie 发送到服务器。

sameSite = ‘Lax’ 属性用于杜绝CSRF 攻击。当然,前提是用户浏览器支持 SameSite 属性。

path、domain、secure、sameSite保存默认即可

示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//使用this还是Vue视情况而定,在.vue文件中使用this。
// 只有在加密协议HTTPS下工作(默认过期时间为一天)
Vue.$cookies.config('','','',true)

// 过期时间设置为30天
Vue.$cookies.config('30d')

// 2019-03-13 过期
this.$cookies.config(new Date(2019,03,13).toUTCString())

// 默认单位是秒,1秒*60*60*24*30=30天,即将过期时间设置为30天
this.$cookies.config(60 * 60 * 24 * 30);

//时间甚至可以是”Sat,13 Mar 2017 12:25:57 GMT“,即格林尼治标准时间2017年3月11日星期六
this.$cookies.config(‘Sat,13 Mar 2017 12:25:57 GMT’);

//过期时间为 当前会话session结束,使用数字0或字符串“0”
this.$cookies.config(0);

//永不过期,使用字符串Infinity或数字-1
this.$cookies.config(-1);

添加一个cookie

1
2
3
4
5
6
7
8
$cookies.set(keyName, value[, expireTimes[, path[, domain[, secure[, sameSite]]]]]) 
$cookies.set(cookie名, cookie值[, 过期时间[, 路径[, 域名[, 是否启用https模式[, 是否限制第三方Cookie]]]]])

//方括号内为可省略项,所以添加一个cookie可以只填key-value:
$cookies.set(cookie名, cookie值)

//cookie名不能设置为['expires','max-age','path','domain','secure','SameSite']
//cookie值可以是一个普通字符串也可以是一个json对象。

获取一个cookie

1
$cookies.get(cookie名)

删除一个cookie

1
2
3
4
5
$cookies.remove(cookie名 [, 路径 [, 域名]]) //方括号内为可省略项
$cookies.remove(cookie名)

//删除所有cookie
this.$cookies.keys().forEach(cookieKey => this.$cookies.remove(cookieKey))

检查cookie是否存在

1
$cookies.isKey(keyName)  // 返回 false 或 true

获取所有cookie名

1
$cookies.keys()  // 返回一个数组
若图片不能正常显示,请在浏览器中打开

欢迎关注我的其它发布渠道