vue-05 sessionStorage封装

目录

1.Cookie、localStorage、sessionStorage

1.1三者区别

1.2为什么要封装Storage

2.封装

2.1sessionStorage

2.1.1封装成下面形式

2.1.2代码

 


1.Cookie、localStorage、sessionStorage

1.1三者区别

存储大小: Cookie4k、localStorage5M、sessionStorage据说大小限制为2M左右

有效期:Cookie拥有有效期、localStroage永久存储,sessionStorage会话技术浏览器关闭就没了

存储位置:Cookie会发送到服务器存到内存,Stroage存储到浏览器端,sessionStorage 存到内存

路径:cookie有路径限制、storage存到域名下

API:cookieapi模糊,storage有对应的api

1.2为什么要封装Storage

storage本身有api,但只是简单形式的key/vaue形式

storage只存储字符串,需要手工转成json对象

storage只能一次性清空,不能单个清空

2.封装

2.1sessionStorage

2.1.1封装成下面形式

{"user":{"userName":"bushuangli","age":18}}

2.1.2代码

/**
 * storage 封装 全局数据key
 * @type {string}
 */
const STORAGE_KEY= "mail";
export default {
    /**
     * 存值
     * @param key 存储的对象名
     * @param value 值
     * @param module_name 如果传这个值就是存到那个模块
     */
    setItem(key,value,module_name){
        if (module_name){
            let val = this.getItem(module_name);
            val[key] = value;
            this.setItem(module_name, val);
        }else{
            let val = this.getStorage();
            val[key] = value;
            window.sessionStorage.setItem(STORAGE_KEY, JSON.stringify(val));
        }
    },
    /**
     * 获取某个模块下面的属性
     * @param key 只传key就是取mail下的对象
     * @param module_name 传moduleName
     * @returns {*}
     */
    getItem(key,module_name){
        if (module_name){
            let val = this.getItem(module_name);
            if(val) return val[key];
        }
        return this.getStorage()[key];
    },
    /**
     * 获取所有值
     * @returns {any}
     */
    getStorage() {
        return JSON.parse(window.sessionStorage.getItem(STORAGE_KEY) || '{}');
    },
    /**
     * 删除模块的key,删除的模块
     * @param key
     * @param module_name
     */
    clear(key, module_name){
        let val = this.getStorage();
        if (module_name){
            if (!val[module_name])return;
            delete val[module_name][key];
        }else{
            delete val[key];
        }
        window.sessionStorage.setItem(STORAGE_KEY, JSON.stringify(val));
    }
}

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Vue.js 是一个前端 JavaScript 框架,它可以用来开发交互式的单页面应用程序。在 Vue.js 中使用 SessionStorage 时,可以使用以下步骤: 1. 在组件中通过 `window.sessionStorage` 对象来访问 SessionStorage,例如: ``` // 存储数据 window.sessionStorage.setItem('key', 'value'); // 获取数据 const value = window.sessionStorage.getItem('key'); // 删除数据 window.sessionStorage.removeItem('key'); // 清空所有数据 window.sessionStorage.clear(); ``` 2. 在 Vue.js 中,可以将 SessionStorage 封装为一个插件,以方便在组件中使用。例如: ``` const StoragePlugin = { install(Vue) { Vue.prototype.$sessionStorage = { setItem(key, value) { window.sessionStorage.setItem(key, JSON.stringify(value)); }, getItem(key) { return JSON.parse(window.sessionStorage.getItem(key)); }, removeItem(key) { window.sessionStorage.removeItem(key); }, clear() { window.sessionStorage.clear(); } }; } }; Vue.use(StoragePlugin); // 在组件中使用 this.$sessionStorage.setItem('key', 'value'); const value = this.$sessionStorage.getItem('key'); this.$sessionStorage.removeItem('key'); this.$sessionStorage.clear(); ``` 通过以上两种方式,就可以在 Vue.js 中使用 SessionStorage 了。需要注意的是,SessionStorage 中只能存储字符串类型的数据,因此在存储和获取数据时需要进行 JSON 转换。 ### 回答2: SessionStorage是HTML5提供的一种本地存储方式,可以将数据存储在用户的浏览器中,并且只能在当前会话中访问。Vue作为一种流行的前端框架,也提供了操作SessionStorage的方法。 在Vue中使用SessionStorage,需要使用浏览器提供的window对象,如下所示: 1. 存储数据 为了将数据存储到SessionStorage中,我们可以使用浏览器提供的window.sessionStorage对象的setItem()方法,如下所示: window.sessionStorage.setItem(key, value); 其中,key表示存储的键名,value表示要存储的值。注意,SessionStorage只能存储字符串类型的数据,如果要存储其他类型的数据,需要使用JSON.stringify()将其转为字符串。 2. 获取数据 为了从SessionStorage中获取数据,我们可以使用浏览器提供的window.sessionStorage.getItem()方法,如下所示: var value = window.sessionStorage.getItem(key); 其中,key表示要获取的键名。获取到的数据还原成原来的类型需要使用JSON.parse()。 3. 删除数据 为了从SessionStorage中删除数据,我们可以使用浏览器提供的window.sessionStorage.removeItem()方法,如下所示: window.sessionStorage.removeItem(key); 其中,key表示要删除的键名。 4. 清空数据 为了从SessionStorage中清空所有数据,我们可以使用浏览器提供的window.sessionStorage.clear()方法,如下所示: window.sessionStorage.clear(); 以上就是在Vue中使用SessionStorage的方法,通过使用这些方法,我们可以方便地将数据存储在用户的浏览器中,以便在需要时进行访问。同时,由于SessionStorage只能在当前会话中访问,因此可以保护用户的隐私。 ### 回答3: Vue是一款非常流行的JavaScript框架,它提供了一种比传统开发方法更灵活和高效的方式来构建Web应用。在Vue中,通常可能需要在前端存储某些数据,这时候可以使用SessionStorageSessionStorage 和 LocalStorage 都是浏览器提供的Web存储API,用于在浏览器中存储信息。与LocalStorage不同,SessionStorage只在浏览器关闭前有效。 使用Vue中的SessionStorage,可以实现以下功能: 1.存储数据 SessionStorage提供了setItem()方法来存储数据。该方法需要两个参数,第一个参数为键名,第二个参数为键值。例如: ```javascript sessionStorage.setItem('username', 'John'); ``` 这里我们存储了一个键名为“username”,键值为“John”的数据。 2.获取数据 SessionStorage提供了getItem()方法来获取数据。该方法需要一个参数,即存储时设定的键名。例如: ```javascript var name = sessionStorage.getItem('username'); ``` 这里我们获取了键名为“username”的数据,将其赋值给变量name。 3.删除数据 SessionStorage提供了removeItem()方法来删除存储的数据。该方法需要一个参数,即存储时设定的键名。例如: ```javascript sessionStorage.removeItem('username'); ``` 这里我们删除了键名为“username”的数据。 4.清除数据 SessionStorage提供了clear()方法来清空所有存储的数据。例如: ```javascript sessionStorage.clear(); ``` 这里我们清空了SessionStorage中所有的数据。 需要注意的是,SessionStorage存储的数据只在当前会话中存在,即在同一浏览器窗口中所有的页面都可以共享该SessionStorage,但在不同浏览器窗口或进程之间不会共享。另外,SessionStorage存储的数据只有在当前网页打开时才有效,如果网页关闭或者刷新,SessionStorage中的数据就会清除。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值