Vuex遇到浏览器刷新,store里存的数据还在吗?

news2024/12/24 21:32:30

我们在做Vue前端项目的时候,很可能会使用Vuex来做一些状态或者数据管理,希望在一定程度上,不发送网络请求,不经过密集的组件数据传输,也可以达到数据共享的目的。但如果浏览器页面刷新了,Vuex中store里存的数据还存在吗?

目录

✨使用Vuex能解决什么问题?

1 公共数据统一管理

2 避免多次发送数据请求

3 强化异步数据更新

✨什么时候不适合使用Vuex呢? 

1 项目简单

2 团队经验

3 状态值较少

✨ 如果浏览器刷新,Vuex中数据不存在了怎么办?

1 存两份 

2 浏览器刷新


✨使用Vuex能解决什么问题?

1 公共数据统一管理

比如我们在前端项目中,用户的余额就是一个公共数据。可能在支付的时候需要用到,在个人中心展示的时候需要用到,在充值提现的时候也可以用到。

这个时候如果在项目初始化的时候获取一次用户余额,保存到store数据中。这样在这些不同的页面,我们就可以直接拿来使用。

2 避免多次发送数据请求

试想一下,这些页面如果没有一个公共的地方存储。那每次展示的时候,就都需要从服务端获取,那将会增加多次的前后端请求。

3 强化异步数据更新

比如我们在充值或者提现,或者购买的界面做了操作,那么余额必将发生改变。这个时候,如果有了统一的数据状态管理,那么就可以一出发生改变,处处改变。而不用每个地方都重新发送请求,获取。

✨什么时候不适合使用Vuex呢? 

看似使用起来很方便,好处多多,但也不是说项目一安装脚手架,就赶紧把Vuex装上,随时准备使用。在这些情况下是不适合使用Vuex的。

1 项目简单

比如你的项目就是一个很小的页面,没什么可管理的状态,顶多就是父组件给子组件传一次,然后再传回来就可以了。那就没必要引入Vuex,父子组件来回传输两次也很简单便捷。

2 团队经验

如果你的团队人员对Vuex开发经验较少,而且项目工期又紧张。那还是不要使用Vuex了。要不管理的状态越多,项目越复杂,最后弄不好项目弄成一团乱麻,越着急越找不到存到哪里了,去哪里更改状态。还不如直接发送请求来的直接醒目呢。

3 状态值较少

我们知道父子组件,传输数据相对简单。但再深一些就会麻烦,一般就会想到Vuex了。但如果你的项目,就那么一个数据需要管理,其实这个时候也不太适合引入Vuex。对这点便捷相比,你引入的那个Vuex文件,其实也不太划算。

✨ 如果浏览器刷新,Vuex中数据不存在了怎么办?

Vuex虽然可以使我们不刷新浏览器,就可以共享数据状态,但这毕竟是一个运行内存数据,也就是说这是一个JS变量。一旦浏览器刷新了,store的数据就恢复了,就初始化了,很可能就跟之前更改的值不同了。

1 存两份 

所以在我们初始化项目的时候,一些值需要发送请求然后进行初始化赋值。例如用户名,例如余额值,当我们发送请求拿到结果后。需要往store里存一份,顺带着往浏览器的localStorage中也存一份。

localStorage的存储,或者cookie的存储,我们推荐使用 js-tool-big-box 工具库的公共方法,学习文档:前端JS必用工具【js-tool-big-box】,获取浏览器参数、cookie、localStorage的存取

这是一点,另外呢,像我们上面说的,如果在购买界面发生了操作,那么余额就会发生变化。这个时候,获取到了最新的余额,也需要往store里存一份,顺带着往 localStorage 中也存一份。

2 浏览器刷新

当浏览器刷新的时候,我们就需要在初始化的时候,检测localStorage的值,并且为store数据赋值。这样就解决了刷新浏览器Vuex数据丢失的问题。

当然,保险一些的做饭,就是再检测一下localStorage中是否有值,如果没有值,就再像最初来到页面的时候一样,发送一次请求,给Vuex中的store和localStorage再分别赋值一下。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1831668.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

摩根大通研究论文:大型语言模型+自动规划器用来作有保障的旅行规划

【摘要】旅行规划是一项复杂的任务,涉及生成一系列与访问地点相关的动作序列,需要满足约束条件并最大化某些用户满意度标准。传统方法依赖于以给定形式语言表示问题,从网络来源中提取相关的旅行信息,并使用适当的问题求解器生成有效解决方案。作为替代方案,最近基于大型语言模型…

Guitar Pro 8软件安装包下载

简介: Guitar Pro吉他软件为帮助所有吉他爱好者学习、绘谱、创作而设计——包含吉他的现有指法及音色, Guitar Pro能了解各类线谱,看谱练吉他,对谱听示范,记录初创声音。 在做弹拨乐器的滑音、倚音、推弦、揉弦、泛…

准备好迎接3D世界的AI革新了吗:Direct3D,让3D创作触手可及

DreamTech 推出原生 3D-DiT 大模型 Direct3D 前言 3D-DiT大模型Direct3D 就目前的AI市场而言,将文本和图像转化为高质量的3D资产一直很难实现,主要目前缺乏一种能够捕捉复杂几何结构而且还能够扩展的3D的方法。但 DreamTech 发布了一种名为Direct3D的新型…

麻了,5年Java竟然不知道幂等......

在分布式系统中,接口幂等性是确保操作一致性的关键特性。 啥是幂等性 幂等性 指的是在给定的条件下,无论操作执行多少次,其结果都保持不变。在接口设计中,幂等性意味着使用相同的参数多次调用接口,应产生与单次调用相…

reverse-android-淘最热点so

资源 1. com.maihan.tredian 2021版 淘最热点 2. 该 app 没有加壳 ,也没混淆。 登录抓包 POST: https://api.taozuiredian.com/api/v1/auth/login/sms POST /api/v1/auth/login/sms HTTP/1.1 Content-Type: application/json Connection: close Charset: UTF-8 User-Agen…

充电学习—5、healthed 电池服务

1、healthed服务监听接收内核kernel的电池事件,然后上传数据给framware层的batterysevice,BatteryService计算电池的电量,显示,绘制动画等 android电池系统框架: 2、healthd服务入口:android/system/cor…

普通人如何入门AI人工智能?最短学习路线分享

学AI能干什么? 首先说一下我个人的观点,我认为未来一定会有很多很多人工的重复工作会被AI替代,并且这个趋势无法逆转,不管是你想象得到的行业还是想象不到的行业,从实体到互联网,从工业到家用,…

【Linux】进程_7

文章目录 五、进程8. 进程地址空间9. 进程终止10. 进程等待 未完待续 五、进程 8. 进程地址空间 我们上节知道了进程地址空间是根据页表来使虚拟地址转换成内存中的物理地址,那这种 地址空间 页表 的机制有什么好处呢?①这种机制可以将物理内存从无序…

基于TCAD与紧凑模型结合方法探究陷阱对AlGaN/GaN HEMTs功率附加效率及线性度的影响

来源:Investigation of Traps Impact on PAE and Linearity of AlGaN/GaN HEMTs Relying on a Combined TCAD–Compact Model Approach(TED 24年) 摘要 本文提出了一种新型建模方法,用于分析GaN HEMTs的微波功率性能。通过结合工…

劝你现在别秦L,不然得后悔死

文 | AUTO芯球 作者 | 雷慢 这真得听劝, 现在别急着买车,不然过不了两个月你得后悔死, 你现在看到秦L将B级车价格打下来了,就急着买车, 几个月后比亚迪还有更大的王炸,价格战还得更残酷! …

Thinkphp起名网宝宝起名网站源码

Thinkphp起名网宝宝起名网站源码 源码介绍 1.宝宝在线起名 2.八字起名,周易取名 3.一对一起名 5.支持手机wap 链接数据库地址:Application\Common\Conf 修改里面config.php数据库连接,导入sm.sql数据库文件即可 伪静态用thinkphp 后台…

销售如何提高回复客户消息的速度?

在如今竞争激烈的商业环境中,能够快速回复客户消息是维护客户关系和提升用户体验的重要一环。尤其是对于很多企业或是销售客服人员来说,及时回复客户的咨询和反馈,能够有效增强客户的粘性和满意度。 那么怎样才能快速回复客户消息呢&#xf…

剧本杀小程序开发,线上剧本杀游戏新体验

近几年,剧本杀行业快速崛起,吸引了广大年轻人的眼光,成为年轻人社交娱乐的新选择。剧本杀在线上也崭露头角,获得大众的关注,性价比高的优势成为了大众玩剧本杀的首要方式。 随着互联网的快速发展,年轻人都…

时间复杂度 空间复杂度分析

时间复杂度就是需要执行多少次&#xff0c;空间复杂度就是对象被创建了多少次。 O(1) < O(logn) < O(n) < O(nlogn) < O(n^2) < O(2^n) < O(n!) < O(n^n) 这里写目录标题 时间复杂度O(1)O(logn)、O(nlogn)O(mn)、O(m*n)最好、最坏情况时间复杂度平均情况…

利用反向代理编写HTTP抓包工具——可视化界面

手写HTTP抓包工具——可视化界面 项目描述语言golang可视化fynev2功能代理抓包、重发、记录 目录 1. 示例1.1 主界面1.2 开启反向代理1.3 抓包1.4 历史记录1.5 重发 2. 核心代码2.1 GUI2.1 抓包 3. 结语3.1 传送门 1. 示例 1.1 主界面 1.2 开启反向代理 1.3 抓包 1.4 历史记录…

AI写真:Stable Diffusion 之 IPAdapter-FaceId

自Stable Diffusion发布以来&#xff0c;AI写真一直是AIGC界的热门话题。 AI写真为摄影师和艺术家提供了全新的创作工具。通过AI技术&#xff0c;艺术家可以轻松实现复杂的图像效果&#xff0c;如风格迁移、图像合成等&#xff0c;AI写真能够在短时间内完成传统摄影师和设计师…

基于single flight来解决缓存击穿

目录 1. 缓存击穿2. 常见解决方案3.single flight方式3.1 模拟业务场景3.2 使用single flight的方式 缓存雪崩、缓存击穿、缓存穿透不单单是缓存领域的经典场景&#xff0c;更是面试当牛马时必备&#xff08;背&#xff09;八股文。 我们来讨论下缓存击穿场景下的解决方案。 …

2024年设计、数字化技术与新闻传播国际学术会议(ICDDTJ 2024)

2024年设计、数字化技术与新闻传播国际学术会议(ICDDTJ 2024) 2024 International Conference on Design, Digital Technology and Journalism 会议地点&#xff1a;哈尔滨&#xff0c;中国 网址&#xff1a;www.icddtj.com 邮箱: icddtjsub-conf.com 投稿主题请注明:ICDD…

Vue46-render函数

一、非单文件和单文件的main.js对比 1-1、非单文件的main.js 1-2、 单文件的main.js 将单文件的main.js中的render函数变成非单文件的main.js中的template形式&#xff0c;报如下错误&#xff1a; 解决方式&#xff1a; 二、解决方式 2-1、引入完成版的vue.js 精简版的vue&a…

Elixir学习笔记——Erlang 库

Elixir 提供了与 Erlang 库的出色互操作性。事实上&#xff0c;Elixir 不鼓励简单地包装 Erlang 库&#xff0c;而是直接与 Erlang 代码交互。在本节中&#xff0c;我们将介绍一些 Elixir 中没有的最常见和最有用的 Erlang 功能。 Erlang 模块的命名约定与 Elixir 不同&#x…