zoukankan      html  css  js  c++  java
  • cookie、vue-cookie、js-cookie

    一、cookie是存储在客户端浏览器的一段文本信息

      1.大小限制在4KB

      2.一个网站的cookie数量在50条左右

      3.存入cookie有一定的风险

      4.可以设置有效期,默认的为会话结束

      5.一般路径为根目录

      6.可以设置域名

      7可以设置secure,通过https访问(secure属性:当设置为true时,表示创建的 Cookie 会被以安全的形式向服务器传输,也就是只能在 HTTPS 连接中被浏览器传递到服务器端进行会话验证,如果是 HTTP 连接则不会传递该信息,所以不会被窃取到Cookie 的具体内容。)

    cookie的完整格式

      document.cookie = 'name=vlaue;expires=日期对象;path=/;domain=域名;secure;

    cookie的原生封装

     1 function createCookie(key,value,expires){
     2         var cookieText = encodeURIComponent(key) + '=' + encodeURIComponent(value) + ';path=/';
     3         if(!isNaN(expires)){
     4             var date = new Date();
     5             date.setDate(date.getDate() + expires);
     6             cookieText += ';expires=' + date;
     7         }
     8         document.cookie = cookieText;
     9     }
    10     function getCookie(key){
    11         var arr = document.cookie.split('; ');
    12         for(var i = 0,len = arr.length;i < len;i ++){
    13             var list = arr[i].split('=');
    14             if(encodeURIComponent(key) === list[0]){
    15                 return decodeURIComponent(list[1]);
    16             }
    17         }
    18     }
    19     function removeCookie(key){
    20         document.cookie = encodeURIComponent(key) + '=;path=/;expires=' + new Date(0);
    21     }

    二、vue-cookie

    vue-cookie是在别人封装好的cookie,通过npm下载引入进行使用,npm地址:https://www.npmjs.com/package/vue-cookies,

    npm下载到项目

    npm i vue-cookies -D

    下载到vue项目后,创建新的cookie.js文件在文件中写入

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

    然后在main.js中引用

    1 import './cookie.js'

    这样就可以在各个组件中直接调用cookie

    设置cookie

     this.$cookies.set(keyName, value,time,path,domain,secure)//KeyName是cookie的键,value是对应的值,time为何时自动删除,path为存放路径,domain为域名,secure为是否要以安全的方式传输

    如果是一个简单的项目,一般只会用到前四项

    this.$cookies.set('test', '{a:1,b:2}',0,'/')   //意思为创建一个名为 test 的cookie ,值为{a:1,b:2},时间为0,即会话结束就删除cookie,存放在根目录 / 下

    vue-cookie的时间有以下几个格式

      1.直接设置数字:0,1,-1。设置为0即会话结束就删除cookie,设置1即一秒后删除,设置-1即此cookie永不删除,60 + 30即为1分30秒后,60*60即为1小时后,1就代表一秒

      2.设置为字符串,比如:"1s"即为一秒后删除、"2min"就是两分钟、"3h"就是3个小时、"4d"就是4天、"5m"就是5个月、"6y"就是6年

      3.也可以自定义设置时间 比如:new Date(2019,9,13).toUTCString()

    1 this.$cookies.set('test', '{a:1,b:2}',-1)  //永不删除
     
    3 this.$cookies.set('test', '{a:1,b:2}',60)  //一分钟后删除
     
    5 this.$cookies.set('test', '{a:1,b:2}','10s')  //10秒后删除
     
    7 this.$cookies.set('test', '{a:1,b:2}',new Date(2019,9,13).toUTCString())  //2019年10月13日删除,new Date月份设置是从0开始的

    cookie的获取

    1 this.$cookies.get(keyName)   //KeyName就是设置的cookie的名字,vue-cookie会将cookie自动转为json对象格式

    cookie的删除

    1 this.$cookies.remove(keyName)

    支持判断本地是否有此cookie

    1 this.$cookies.isKey(keyName)  

    获取本地所有cookie的名称

    1 this.$cookies.keys() 

    三、js-cookie

    js-cookie同样是npm中被人已经写好的cookie工具,npm地址:https://www.npmjs.com/package/js-cookie

    npm下载命令

    1 cnpm i js-cookie -D

    也可以在vue中使用,下面是在react中的使用

    通过命令在react项目中下载成功后在main.js文件中引用

    import jsCookie from 'js-cookie';
    
    React.Component.prototype.$cookie = jsCookie;  //添加到原型,使每一个组件都可以使用

    js-cookie的使用就很简单

    设置cookie

    this.$cookie.set('name', 'value');

    设置删除时间

    this.$cookie.set('name', 'value',{expires: 7, path: '/'});  //此时为7天后删除cookie,可以不设置,默认会话结束后自动删除cookie

    获取cookie

    this.$cookie.get('name');  //将会得到名为name的纯字符串值
    
    this.$cookie.getJSON('name');   //将会得到一个json格式的对象数据
    
    this.$cookie.get(); 
    
    this.$cookie.getJSON();     //如果没有键名将会获取所有的cookie

    删除cookie

    1 this.$cookie.remove('name');
  • 相关阅读:
    取消Git代理设置
    在Go语言中使用JSON(去掉空字段)
    go-- 用go-mssql驱动连接sqlserver数据库
    Go加密解密之DES
    Go语言interface详解
    Go--避免SQL注入
    golang: 把sql结果集以json格式输出
    Golang操作数据库
    Oracle ORA-01555(快照过旧)
    racle undo 解析
  • 原文地址:https://www.cnblogs.com/wayaoyao/p/11114080.html
Copyright © 2011-2022 走看看