当前位置: 首页 > news >正文

状态管理与存储:Vuex 和 sessionStorage

1. sessionStorage 存储位置

sessionStorage 是浏览器提供的 Web Storage API 的一部分,用于在一个会话期间存储数据。数据保存在浏览器的 内存 中,而不是在硬盘上,且其生命周期仅限于当前浏览器标签页。数据在浏览器窗口或标签页关闭时会被清除。

  • 存储位置: 数据保存在浏览器的内存中(而不是服务器端)。
  • 生命周期: 当前浏览器会话期间有效(关闭标签页或浏览器后数据丢失)。
  • 作用范围: 数据只对当前标签页有效,不会在其他标签页或浏览器窗口中共享。

你可以通过 sessionStorage.setItem()sessionStorage.getItem() 来存储和读取数据。

示例:

// 存储数据
sessionStorage.setItem('username', 'JohnDoe');// 获取数据
const username = sessionStorage.getItem('username');// 删除数据
sessionStorage.removeItem('username');// 清除所有数据
sessionStorage.clear();

2. Vuex 存储位置

Vuex 是 Vue.js 状态管理库,用于集中式管理应用状态。Vuex 存储的数据是存在 浏览器内存 中的,跟 sessionStorage 不同,Vuex 存储的数据是由 Vue 应用程序本身管理的,而不是浏览器的 Web Storage API。

  • 存储位置: 数据保存在 Vuex 状态树(JavaScript 对象)中,属于浏览器内存。
  • 生命周期: Vuex 数据在应用的生命周期内有效,页面刷新会清空 Vuex 数据,除非你将数据持久化(例如,使用插件如 vuex-persistedstate)。
  • 作用范围: 数据在整个 Vue 应用中共享,任何组件都可以访问和修改 Vuex 中的状态。

在 Vuex 中,状态数据存储在 state 中,状态的读取通常通过 getters,状态的修改通过 mutationsactions 完成。

示例:

// 在 Vuex store 中定义状态
const store = new Vuex.Store({state: {username: 'JohnDoe',},mutations: {setUsername(state, newUsername) {state.username = newUsername;}},actions: {updateUsername({ commit }, newUsername) {commit('setUsername', newUsername);}}
});// 访问 Vuex 数据
console.log(store.state.username); // 输出: JohnDoe// 修改 Vuex 数据
store.commit('setUsername', 'JaneDoe');
console.log(store.state.username); // 输出: JaneDoe

对比总结

特性sessionStorageVuex
存储位置浏览器内存浏览器内存(Vue 应用的状态树)
生命周期当前会话有效(标签页关闭后数据丢失)当前应用会话有效(刷新页面后数据丢失)
作用范围仅限于当前标签页或窗口Vue 应用中的所有组件可以访问和修改
数据类型键值对,通常以字符串存储,可通过 JSON 转换复杂数据任何 JavaScript 对象,支持嵌套和复杂数据结构
持久化数据在标签页关闭时丢失默认情况下数据在页面刷新后丢失,可通过插件持久化
同步/异步同步支持同步和异步(通过 mutationsactions

总结:

  • sessionStorage 适用于需要在单个会话中持久化存储的数据,而 Vuex 更适合用于在应用的不同组件之间共享和管理状态。
  • 如果需要持久化 Vuex 状态,可以使用 vuex-persistedstate 插件,将数据存储到 localStoragesessionStorage 中。

相关文章:

状态管理与存储:Vuex 和 sessionStorage

1. sessionStorage 存储位置 sessionStorage 是浏览器提供的 Web Storage API 的一部分,用于在一个会话期间存储数据。数据保存在浏览器的 内存 中,而不是在硬盘上,且其生命周期仅限于当前浏览器标签页。数据在浏览器窗口或标签页关闭时会被…...

Redis和MySQL保持一致性的延迟双删(Delay Double Delete)策略

Redis和MySQL保持一致性的延迟双删(Delay Double Delete)策略,是一种在数据更新或删除时为了保证数据一致性而采取的方法。以下是延迟双删的过程和原理的详细解释: 一、过程 第一次删除缓存: 当需要更新数据库中的数据…...

快速理解微服务中Fegin的概念

一.由来 1.在传统的架构里面,我们是通过使用RestTemplate来访问其他的服务,但是这种方式就存在了一个很大的缺陷,也就是被调用方如果发生了服务的迁移(IP和端口发生了变化),那么调用方也需要同步的在代码里面进行修改,…...

新增工作台模块,任务中心支持一键重跑,MeterSphere开源持续测试工具v3.5版本发布

2024年11月28日,MeterSphere开源持续测试工具正式发布v3.5版本。 在这一版本中,MeterSphere新增工作台模块,工作台可以统一汇总系统数据,提升测试数据的可视化程度并增强对数据的分析能力,为管理者提供测试工作的全局…...

快速搭建一个博客!!!“Halo框架深度优化:搭建你的个性化博客或网站”

目录 引言: 一. 首先服务器上去下载一个docker 1.可以参考官方地址: 2. 通过宝塔来一键安装!!! 3.也可以自己下载!!! 1.卸载旧版 2.配置Docker的yum库 3.安装Docker 4.启动和…...

009 STM32 HAL库介绍

STM32 HAL库(Hardware Abstraction Layer)是STMicroelectronics为STM32系列微控制器提供的一套硬件抽象层库,它旨在简化STM32的开发过程,提高代码的可移植性和可维护性。HAL库通过提供一组统一的API接口,使得开发者无需…...

【微服务】 Eureka和Ribbon

一、Eureka 服务调用出现的问题:在远程调用另一个服务时,我们采用的解决办法是发送一次http请求,每次环境的变更会产生新的地址,所以采用硬编码会出现很多麻烦,并且为了应对并发问题,采用分布式部署&#…...

6.算法移植第六篇 YOLOV5/rknn生成可执行文件部署在RK3568上

接上一篇文章best-sim.rknn模型生成好后,我们要将其转换成可执行文件运行在RK3568上,这一步需要在rknpu上进行,在强调一遍!!rknpu的作用是可以直接生成在开发板上运行的程序 退出上一步的docker环境 exit1.复制best-…...

element的el-table表格标题用css自定义是否必填,用添加伪类的方式标红色*

element的el-table表格标题用css自定义是否必填添加伪类红色 * 效果图如下👇 el-table组件的html部分 css部分 /deep/.el-table__header-wrapper{.el-table__header{.has-gutter tr .el-table__cell:nth-of-type(3) .cell:before{content: *;color:red}.has-gutte…...

数据仓库: 8- 数据仓库性能优化

CSDN 目录展示 目录 8- 数据仓库性能优化8.1 查询优化8.1.1 索引优化8.1.2 分区和分桶8.1.3 使用缓存8.1.4 查询简化与重写8.1.5 聚合优化8.1.6 并行化和分布式计算8.1.7 基于列存储的优化8.1.8 表的分区和数据清洗8.1.9 查询提示 (Hints)8.1.10 自动调优工具 8.2 索引设计8.2…...

可编程网络在分布式深度学习通信瓶颈控制中的应用与未来展望

目录 可编程网络在分布式深度学习通信瓶颈控制中的应用与未来展望 可编程网络在分布式深度学习通信瓶颈控制中的应用与未来展望 在分布式深度学习领域,随着模型规模的不断扩大,训练过程中的通信开销已成为制约性能提升的关键因素。传统的分布式训练方法面临高通信延迟和带宽…...

【论文笔记】Tool Learning with Foundation Models 论文笔记

Tool Learning with Foundation Models 论文笔记 文章目录 Tool Learning with Foundation Models 论文笔记摘要背景:工作: 引言工具学习的发展本文工作(大纲&目录) 背景2.1 工具使用的认知起源2.2 工具分类:用户界…...

Springfox迁移到 Springdoc OpenAPI 3

将项目从 Springfox 迁移到 Springdoc OpenAPI 3 时,主要的工作是将原先使用的 Springfox 注解替换为 Springdoc OpenAPI 3 中的对应注解。虽然 Springdoc OpenAPI 3 基于 OpenAPI 3 规范,并且有一些不同的命名方式和设计理念,但大部分注解的…...

DIY-Tomcat part 3 实现对动态资源的请求

实现ServletRequest package connector;import javax.servlet.RequestDispatcher; import javax.servlet.ServletInputStream; import javax.servlet.ServletRequest; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.i…...

3.10 内核 BUG_ON() at xfs_vm_writepage() -> page_buffers()

目录 前言 问题分析 page buffers创建 page buffers丢失 Write-Protect Dirty Page w/o Buffers 问题解决 前言 这个问题发生在3.10.0-514.el7上,并且在RHEL的知识库中快速找到了对应的案例以及解决方案,但是,理解问题如何发生和解决…...

CrystalDiskInfo:硬盘健康监测工具简介和下载

原论坛给你更好的阅读体验:CrystalDiskInfo:硬盘健康监测工具简介和下载 | 波波论坛 引言 在日常使用电脑时,硬盘的健康状态对于系统的稳定性和数据的安全性至关重要。硬盘出现故障可能会导致数据丢失,严重时甚至会使整个系统无…...

Flink cdc同步增量数据timestamp字段相差八小时(分析|解决)不是粘贴复制的!

问题 我使用flink cdc同步mysql到mysql遇到了timestamp字段缺少八小时的问题。很少无语,flink ,cdc,debezium时区都设置了,没有任何效果! 分析 问题出现在mysql binlog身上!!! 因为默认mysql会使用UTC来…...

【docker】9. 镜像操作与实战

镜像操作案例 查找镜像 docker search busybox下载镜像 docker pull busybox:1.36.0查看镜像及列表存储位置 rootLAPTOP-H2EI4I6A:~# docker images busybox REPOSITORY TAG IMAGE ID CREATED SIZE busybox latest 517b897a6a83 2 months a…...

js-显示转换(强制转换)与隐式转换,==与===区别

1.显示转换(强制转换)与隐式转换 1.1显示转换 常见的JavaScript强制转换示例。 (1) 一元加号、一元减号- 值是布尔值,true将被转换为1,false将被转换为0。 let a "123"; let b a; // b的值为123,类型为Nu…...

【通俗理解】步长和学习率在神经网络中是一回事吗?

【通俗理解】步长和学习率在神经网络中是一回事吗? 【核心结论】 步长(Step Size)和学习率(Learning Rate, LR)在神经网络中并不是同一个概念,但它们都关乎模型训练过程中的参数更新。 【通俗解释&#x…...

【PTA】【数据库】【SQL命令】编程题2

数据库SQL命令测试题2 测试题目录 10-1 查询“李琳”老师所授课程的课程名称10-2 查询成绩比所有课程的平均成绩高的学生的学号及成绩10-3 创建带表达式的视图StuView10-4 从视图PerView中查询数据10-5 查询工资高于在“HR”部门工作的所有员工的工资的员工信息10-6 查询选修的…...

Spring Boot林业产品推荐系统:用户指南

摘 要 网络技术和计算机技术发展至今,已经拥有了深厚的理论基础,并在现实中进行了充分运用,尤其是基于计算机运行的软件更是受到各界的关注。加上现在人们已经步入信息时代,所以对于信息的宣传和管理就很关键。因此林业产品销售信…...

【Conda 】Conda 配置文件详解:优化你的包管理与环境设置

目录 引言一、什么是 .condarc 文件?二、.condarc 文件的详细解析与优化2.1 SSL 验证2.2 设置 Conda 下载源2.3 设置环境和包存储路径2.4 代理服务器设置2.5 连接超时设置2.6 显示频道 URL2.7 包版本与构建选择2.8 环境依赖性管理2.9 禁用默认包版本2.10 Conda 配置…...

win10中使用ffmpeg的filter滤镜

1 给视频加文字水印 1.1 添加播放时间 ffmpeg -i input.mp4 -vf "drawtextfontfileC\\:/Windows/fonts/consola.ttf:fontsize30:fontcolorwhite:timecode00\:00\:00\:00:rate25:textTCR\::boxcolor0x000000AA:box1:x20:y20" -y output.mp4 在视频的x20:y20位置添加t…...

设计模式 外观模式 门面模式

结构性模式-外观模式 门面模式 适用场景:如果你需要一个指向复杂子系统的直接接口, 且该接口的功能有限, 则可以使用外观模式。 不用关心后面的查询具体操作 /*** 聚合查询接口*/ RestController RequestMapping("/search") Slf…...

Prophet时间序列算法总结及python实现案例

目录 一、prophet理论总结二、python导入模块方式三、python实现案例3.1帮助信息3.2 案例 四、参考学习 一、prophet理论总结 prophet模型是facebook开源的一个时间序列预测算法。[1][2],该算法主要为处理具有周期性、趋势变化以及缺失值和异常值的时间序列数据而设…...

远程调用 rpc 、 open feign

在学习黑马 springcloud 视频的时候,看到 open feign 使用, 就是 http 封装。 spring框架三部曲,导入依赖,加配置,使用api。...

Redis的几种持久化方式

Redis 提供了两种主要的持久化方式,它们分别是: 1. RDB(Redis Database Snapshotting) RDB 是 Redis 的一种数据持久化方式,它会在指定的时间间隔内对 Redis 中的数据进行快照并保存到硬盘上。 特点: 触…...

论文笔记(五十九)A survey of robot manipulation in contact

A survey of robot manipulation in contact 文章概括摘要1. 引言解释柔顺性控制的概念:应用实例: 2. 需要接触操控的任务2.1 环境塑造2.2 工件对齐2.3 关节运动2.4 双臂接触操控 3. 接触操控中的控制3.1 力控制3.2 阻抗控制3.3 顺应控制 4. 接触操控中的…...

c#控制台程序26-30

26.寻找并输出11至999之间的数m,它满足m,m2和m3均为回文数。所谓回文数是指其各位数字左右对称的整数,例如121,676,94249等。满足上述条件的数如m11,m2121,m31331皆为回文数。请编制函数实现此功能,如果是回文数&#…...

做移动网站优化快速排名软件/东莞营销网站建设优化

https://blog.csdn.net/shwan_ma/article/details/78879620 一般来说,打印tensorflow变量的函数有两个:tf.trainable_variables () 和 tf.all_variables()不同的是:tf.trainable_variables () 指的是需要训练的变量tf.all_variables() 指的是…...

南宁市保障住房建设管理服务中心网站/360站长工具seo

1 异常 异常:Java代码在运行时期发生的问题就是异常。 1.1 异常的继承体系 Throwable:是所有错误和异常的超类。 Error:错误类。 Exception:编译期异常,进行编译Java程序时出现的问题。 RuntimeException&#xf…...

海口专业网站搭建厂/百度识图在线识图

python读取索引1)在Python文件处理中tell() (1) tell() in python file handling ) This method returns the current position of file pointer. 此方法返回文件指针的当前位置。 2)Python文件处理中的seek() (2) seek() in python file handling ) It set the position of f…...

电子科技技术支持东莞网站建设/网店运营公司

插入排序 插入排序是这样实现的:    首先新建一个空列表,用于保存已排序的有序数列(我们称之为"有序列表")。    从原数列中取出一个数,将其插入"有序列表"中,使其仍旧保持有序状态…...

帮别人做彩票网站/口碑seo推广公司

linux下给目录下所有子目录和文件赋权 chmod -R 777 * 给所有文件指定用户和用户组 chown - R wang.users /his 把目录/his及其下的所有文件和子目录的属主改成wang,属组改成users。...

烟台做外贸网站建设/杭州seo 云优化科技

在网上找的比较好的总结,总结的很详细,转自下面的连接,只用于自己和网友的学习,不用于商业! https://blog.csdn.net/wuqingshan2010/article/details/71056292转载于:https://www.cnblogs.com/andingding-blog/p/10005…...