cookie,localStorage,SessionStorage三者的区别,以及在vue中的用法

cookie,localStorage,SessionStorage三者的区别,以及在vue中的用法

基本概念

cookie

cookie英文饼干,顾名思义,大小应该非常小,cookie非常小,它的大小限制在4kb左右.

localStorage

localStorage是HTML5标准中新加入的技术,如今localStorage被大多数浏览器所支持。

sessionStorage

sessionStorage与localStorage的接口类似,但保存数据的生命周期与localStorage不同。而sessionStorage是前端的一个概念。它只是可以将一部分数据在当前会话中保存下来,刷新页面数据依旧存在。但是页面关闭后,sessionStorage中的数据就会被清空。

三者的异同

数据上的生命周期的不同

Cookie 一般由服务器生成,可设置失效时间,如果在浏览器端生成cookie,默认是关闭后失效。

localStorage 除非被永久清除,否则永久保存。

sessionStorage 仅在当前会话会有效,关闭页面或浏览器后被清除

存放数据的大小不同

Cookie 一般为4kb

localStorage 和 sessionStorage 一般为5mb

与服务器端通信不同

Cookie 每次都会携带HTTP头中,如果使用cookie保存过多数据会带来性能问题

localStorage 和 sessionStorage 仅在客户端(即浏览器)中保存,不参与和服务器的通信。

vue中localStorage用法

// 字面量的方式定义一个变量
const storage = {
    // 设置本地存储
    set: function (key, value, isJson = false) {
        // 先判断key,value是否为空
        if (key.length == 0 || value.length == 0) {
            return false
        }
        // 判断是否需要转换,true为转换,false,不转换
        let data = (isJson == true ? JSON.stringify(value) : value)
        // 设置缓存
        localStorage.setItem(key, data);
    },
    // 获取本地存储
    get: function (key, isJson) {
        // 判断key,value,是否为空
        if (key.length == 0) {
            return false
        }
        let data = localStorage.getItem(key)
        // 判断是否需要转换json字符串,true为转换,false为不转换
        return isJson == true ? JSON.parse(data) : data
    },
    remove: function (key) {
        // 判断key是否为空
        if (key.length == 0) {
            return false
        }
        // 删除
        localStorage.removeItem(key)
    }
    // 删除u本地存储
}
// 抛出对象
export default storage;
//引用localStorage
import storage from '../storage'

storage.set("user","张三", true);//保存数据

let data=storage.get("user", true);//获取本地数据

storage.remove("user");//删除数据

//SessionStorage与localStorage用法相同不做演示

或者直接用vuex的数据持久化
cnpm install vuex -S//下载vuex
cnpm i vuex-persistedstate -S//下载vuex数据持久化工具
创建store文件夹,在文件夹下创建index.js
//配置如下
import Vue from "vue";
import Vuex from "vuex";
import createPersistedState from "vuex-persistedstate";
Vue.use(Vuex);
export default new Vuex.Store({
  state: {},
  mutations: {},
  actions: {},
  modules: {},
  // 数据持久化
  plugins: [createPersistedState()]
});

在main.js下引入
import store from "./store";//导入vuex文件
new Vue({
  router,
  store,//导出
  axios,
  render: h => h(App)
}).$mount("#app");

vue中cookie用法

npm install js-cookie --save//下载
Cookies.set('name', 'value');//保存数据
Cookies.get('name');//获取数据
Cookies.remove('name');//删除数据
Cookies.getJSON('name')//转为json格式
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用: cookie是存储在用户本地终端上的数据,用于辨别用户身份和进行会话跟踪。通常经过加密。它是一种在客户端存储数据的机制。引用:session和cookie都是用来跟踪浏览器用户身份的会话方式,记录客户状态的机制。引用:session比cookie具有更高的安全性。 cookie主要的特点是: - 存储在用户本地终端上,可以被浏览器读取和修改; - 可以设置过期时间,即在一定时间后失效; - 存储数据的大小有限制,一般为4KB; - 可以被不同的域名共享。 sessionStorage是HTML5新增的Web存储技术,它在浏览器存储数据,但是与cookie不同,它的数据只会在当前会话保留,即当用户关闭浏览器标签页或窗口时,数据会被清除。sessionStorage的特点如下: - 存储在浏览器,只能被当前页面访问; - 数据在当前会话有效,关闭标签页或窗口后数据会被清除; - 存储数据的大小也有限制,一般为5MB; - 数据仅在同一域名下共享。 localStorage也是HTML5新增的Web存储技术,与sessionStorage类似,它也是存储在浏览器的数据。但与sessionStorage不同的是,localStorage的数据在用户关闭浏览器后仍然会保留,不会被清除。localStorage的特点如下: - 存储在浏览器,可以被所有页面访问; - 数据在浏览器关闭后仍然有效,除非用户手动清除; - 存储数据的大小也有限制,一般为5MB; - 数据仅在同一域名下共享。 服务端session是指将用户的会话信息存储在服务器端,通过在客户端存储一个session id来与服务器端进行交互。服务器端根据session id来识别用户,从而实现身份认证和会话管理。与前面提到的cookie和Web存储技术不同,服务端session的数据存储在服务器端,客户端只存储了一个标识。服务端session的特点如下: - 数据存储在服务器端,客户端只存储session id; - 数据在客户端关闭或过期后不会被清除; - 可以存储大量的数据,没有明确的大小限制; - 数据不共享,每个用户拥有自己的session数据。 综上所述,cookiesessionStoragelocalStorage是用来在浏览器端存储数据的机制,它们在数据存储的范围、有效期和共享性上有所不同。而服务端session是将用户的会话信息存储在服务器端,通过在客户端存储一个session id来与服务器端进行交互。请根据具体的需求选择合适的机制来使用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [基于Vue 服务端Cookies删除的问题](https://download.csdn.net/download/weixin_38658564/13633580)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [session,cookie,sessionStorage,localStorage区别](https://blog.csdn.net/weixin_43758377/article/details/109215019)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值