『壹』 vue前端cookie如何读取到中文
在Vue2.0下,这个貌似已经不需要安装了。因为当你创建一个项目的时候,npm install 已经为我们安装好了。我的安装方式如下:
?
1
2
3
4
5
6
7
# 全局安装 vue-cli
$ npm install --global vue-cli
# 创建一个基于 webpack 模板的新项目
$ vue init webpack my-project
# 安装依赖,走你
$ cd my-project
$ npm install
这是我创建好的目录结构,大家可以看一下:
项目结构
二、封装Cookie方法
在util文件夹下,我们创建util.js文件,然后上代码
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
//获取cookie、
export function getCookie(name) {
var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
if (arr = document.cookie.match(reg))
return (arr[2]);
else
return null;
}
//设置cookie,增加到vue实例方便全局调用
export function setCookie (c_name, value, expiredays) {
var exdate = new Date();
exdate.setDate(exdate.getDate() + expiredays);
document.cookie = c_name + "=" + escape(value) + ((expiredays == null) ? "" : ";expires=" + exdate.toGMTString());
};
//删除cookie
『贰』 vue项目开发中什么时候用cookie什么时候用sessionstorage
一,cookie的使用
1,首先加载模块
npm i js-cookie -S
2,在使用cookie的页面上进行引入
import Cookies from 'js-cookie'
3,使用方法
创建一个在整个网站上有效的Cookie
Cookies.set('name', 'value');
创建一个从现在起7天后过期的cookie,在整个站点上有效:
Cookies.set('name', 'value', { expires: 7 });
创建一个过期的cookie,对当前页面的路径有效:
Cookies.set('name', 'value', { expires: 7, path: '' });
读取cookie:
Cookies.get('name'); // => 'value'
Cookies.get('nothing'); // => undefined
阅读所有可见的Cookie:
Cookies.get(); // => { name: 'value' }
删除cookie:
Cookies.remove('name');
删除对当前页面路径有效的cookie:
Cookies.set('name', 'value', { path: '' });
Cookies.remove('name'); // fail!
Cookies.remove('name', { path: '' }); // removed!
重要!删除cookie时,您必须传递用于设置cookie的完全相同的路径和域属性,除非您依赖于默认属性。
注意:删除未存在的cookie不会引发任何异常,也不会返回任何值
二,localStorage的使用
注:vue下使用localStorage和H5使用localStorage的方法是一致的,不需要引入插件
1,储存
//数据
localStorage.setItem('userName','HelloWeen');
2,获取
localStorage.getItem('userName')
3,删除
localStorage.removeItem('userName');
4,localStorage可以储存JSON对象,且没有时间限制的数据存储 ,除非主动删除。
//数组
var arr=[1,2,3];
localStorage.setItem("temp",arr); //会返回1,2,3
console.log(typeof localStorage.getItem("temp"));//string
console.log(localStorage.getItem("temp"));//1,2,3
5,localStorage.setItem() 不会自动将Json对象转成字符串形式
var user= {"userName": "hello","age": 2};
typeof localStorage.getItem("user");//也会返回String
localStorage.setItem("user", user);//但是返回[object Object],
6,用localStorage.setItem()正确存储JSON对象方法是:
存储前先用JSON.stringify()方法将json对象转换成字符串形式
JSON.stringify() 方法可以将任意的 JavaScript 值序列化成 JSON 字符串
1
2
3
1
2
3
4
5
1
1
1
2
1
2
3
1
1
1
2
1
1
1
1
1
获取的时候要将之前存储的JSON字符串使用JSON.parse()先转成JSON对象再进行操作
var user= {"userName": "hello","age": 2};
user= JSON.stringify(user); //转化为JSON字符串 "{"userName":"hello","age":2}"
localStorage.setItem("user", user);//返回{"userName":"hello","age":2}
user=JSON.parse(localStorage.getItem("user"));
三,sessionStorage的使用
定义和使用
localStorage 和 sessionStorage 属性允许在浏览器中存储 key/value 对的数据。
sessionStorage 用于临时保存同一窗口(或标签页)的数据,在关闭窗口或标签页之后将会删除这些数据。
提示: 如果你想在浏览器窗口关闭后还保留数据,可以使用 localStorage 属性, 改数据对象没有过期时间,今天、下周、明年都能用,除非你手动去删除。
1,方法
sessionStorage.key(int index) //返回当前 sessionStorage 对象的第index序号的key名称。若没有返回null。
1
1
2
3
4
sessionStorage.getItem(string key) //返回键名(key)对应的值(value)。若没有返回null。
sessionStorage.setItem(string key, string value) //该方法接受一个键名(key)和值(value)作为参数,将键值对添加到存储中;如果键名存在,则更新其对应的值。
sessionStorage.removeItem(string key) //将指定的键名(key)从 sessionStorage 对象中移除。
sessionStorage.clear() //清除 sessionStorage 对象所有的项。
『叁』 解决vue nodejs中cros跨域cookie和session失效的问题
很多童鞋会发现vue请求api接口的时候多个地址没法共享session,也就是session会丢失。我们知道session是基于cookie的,ajax请求没法共享session主要是因为cookie跨域引起的。cookie跨域如何解决呢?
『肆』 vue 使用 cookie
vue-cookie
第一步:安装vue-cookie
npm install vue-cookie --save
第二步:在 mian.js 引入和通过 Vue.use() 明确地安装
在 main.js 中引入
/局粗/ require es5 方法
var Vue = require('vue')
Vue.use(require('vue-cookie')) // 挂在在全局了
// es6 方法
import Vue from 'Vue'
import VueCookie from 'vue-cookie'
Vue.use(VueCookie) // 挂在在全局了
组件中设置一个cookie
// 组件中直接使用 来设置cookie
this.$cookie.set('test', 'Hello world!', 1);
获取一个cookie
// 组件中获取方式
this.$cookie.get('test'); // return value
删除一个cookie
// 删除 cookie
this.$cookie.delete('test');
警告
$ cookie关键名称不能设置为含型['expires','max-age',谈腊猜'path','domain','secure']