Cookie的使用(js-cookie插件)

cookie是一个存储在客户端的字符串属性,可以用它对当前网页的cookie进行读,写,增.删等操作;javascript能够用document对象的cookie属性对cookie进行操作;

js-cookie是一个简单的,轻量级的处理cookies的js API

1、安装,引入

npm install js-cookie --save
import Cookies from 'js-cookie'
2、存入
// Create a cookie, valid across the entire site:  
Cookies.set('name', 'value');  
   
// Create a cookie that expires 7 days from now, valid across the entire site:  
Cookies.set('name', 'value', { expires: 7 });  
   
// Create an expiring cookie, valid to the path of the current page:  
Cookies.set('name', 'value', { expires: 7, path: '' });  

3、取出

// Read cookie:  
Cookies.get('name'); // => 'value'  
Cookies.get('nothing'); // => undefined  
   
// Read all visible cookies:  
Cookies.get(); // => { name: 'value' }  

4、删除

// Delete cookie:  
Cookies.remove('name');  
   
// Delete a cookie valid to the path of the current page:  
Cookies.set('name', 'value', { path: '' });  
Cookies.remove('name'); // fail!  
Cookies.remove('name', { path: '' }); // removed!  
Cookies.remove('name', { path: '', domain: '' }); // removed! 

5、命名空间

如果担心不小心修改掉Cookies中的数据,可以用noConflict方法定义一个新的cookie。

var Cookies2 = Cookies.noConflict();
Cookies2.set('name', 'value');

6、set方法的参数解释

  1. 第一个:name,必选参数,这个是cookie的变量名  
  2. 第二:value,可选参数,这个cookie变量的值
  3. 第三个:expire,可选参数,这个是用来设置cookie变量保存的时间  
  4. 第四个:path,cookie的有效范围,这个参数是下一个参数domain基础上的有效范围,如果path设置为”/”,那就是在整个 domain都有效,比如setcookie(“user”,”php”,time()+3600,”/”),这样我们domain下的任何目录,任何文件都可以通过$_COOKIE['user']来调用这个cookie变量的值。如果path设置为”/test”,那么只在domain下的/test 目录及子目录才有效,比如domain下有两个目录: test1,test2,我们设置为setcookie(“user”,”php,time()+3600,”/test1″),那么只有test1目录下才能通过$_COOKIE['user']调用user这个cookie变量的值,test2目录下获取不到。  
  5. 第五个:domain,cookie有效的域名,如果domain,设置为googlephp.cn,那么在googlephp.cn下的所有子域都有效。假设googlephp.cn有两个子域,php.googlephp.cn,css.googlephp.cn,我们设置为 setcookie(“user”,”php”,time()+3600,”/”,”php.googlephp.cn”),那么只有在 php.googlephp.cn这个子域下才能获取user这个cookie变量的值. 再举一个例子:setcookie(“user”,”php”,time()+3600,”/test”,”php.googlephp.cn”),那么只有在php.googlephp.cn这个子域下的test目录下才能获取user这个cookie变量的值.  
    例如设成".hanj.com"则在.hanj.com下的所有服务器下的文件都可以调用cookie,在hanj的所有子域名下都可以访问,实现跨站点通信
    Cookies.set("token", v, { domain: '.guohua.com' });
    注意:通过domain设置的cookie清除的时候也必须使用domain清除
    Cookies.remove("token", { domain: '.guohua.com' });
  6. secure
    true或false,表示cookie传输是否仅支持https。默认为不要求协议必须为https。:默认情况下为false;用http协议不安全传输;true:用https等协议安全传输.

参考:https://www.cnblogs.com/zzz-knight/p/11692362.html
https://blog.csdn.net/u012717614/article/details/79131997?utm_source=blogxgwz5

原文地址:https://www.cnblogs.com/gopark/p/13743364.html