返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Vuex localStorage的具体使用
  • 881
分享到

Vuex localStorage的具体使用

Vuex localStorage 2023-05-20 05:05:04 881人浏览 安东尼
摘要

目录状态管理的必要性localStorage储存和获取数据生命周期VuexVuex的概念Vuex的工作流程Vuex和localStorage的区别总结前端开发中,状态管理是一个很重要

前端开发中,状态管理是一个很重要的话题。在vue.js中, Vuex是一个强大的状态管理工具,而localStorage则是一种用于存储和获取本地数据的机制。虽然这两个东西都可以用来存储数据,但它们之间还是有很大的区别。

状态管理的必要性

在了解Vuex和localStorage之前,我们先来看一下状态管理的必要性。

在Vue.js应用程序中,组件的状态需要在多个组件中共享。如果将状态保存在组件内部,那么跨组件的通信就会变得困难。此外,在处理异步请求或使用websocket连接时,状态可能会根据接收到的信息而改变。在这种情况下,如果不使用状态管理器,则可能会遇到诸如同样的数据重复渲染、缺少正确的查询结果等问题。
为了实现灵活性和可维护性,需要使用状态管理器。 这里的状态指的是应用程序中的可变数据。

localStorage

HTML5引入了一种叫做localStorage的机制。它可以让我们像cookie一样存储简单的键值对,但是相较于cookie更为强大且安全,它没有大小限制。当然,我们也可以使用sessionStorage和IndexedDB,但是这些都不适合长期使用。

储存和获取数据

localStorage提供了两种方法setItem()和getItem(),可以很方便地储存和获取数据。

localStorage.setItem('name', 'Tom');
var name = localStorage.getItem('name');
console.log(name); // 输出: Tom

在这里,我们将名字Tom存储在localStorage中,并使用getItem()方法检索数据。

生命周期

通过localStorage设置的数据是长期的,除非用户手动清除它们。 这意味着,即使关闭浏览器并重新打开它,数据仍然会存在。
而且,localStorage也可以在不同的标签页之间进行数据共享。让我们看一个例子:

在tab A中执行以下操作:

localStorage.setItem('count', 0);

在tab B中执行以下操作:

var count = localStorage.getItem('count');
console.log(count); // 输出: 0

在这个例子中,我们在tab A中将count初始值设为0, 然后在tab B中可以访问该值。

Vuex

Vuex是Vue.js的状态管理工具。 它将应用程序中共享的所有状态集中在一个store中。 这使得跨组件通信更容易,同时还可以支持异步操作,当数据发生变化时使得组件重渲染更简单。

Vuex的概念

Vuex包含五个核心部分:state、getters、mutations、actions和modules。

  • State: 就相当于组件中的属性(data)。它是唯一的,并且驱动Vue.js应用程序的所有状态。
  • Getters: 可以理解为state的计算属性,就像computed一样。它们缓存一些常用计算结果,可以提高性能。
  • Mutations: 用于变更vuex状态中的属性。它们必须同步进行。Vuex使用提交(commit)而非直接变异来执行此操作。
  • Actions: 指定一种在组件中触发mutation的方法,可以包含任意异步操作。
  • Modules: 允许分割vuex全局状态为模块。每个模块都有自己的state、mutations、actions和getters。这使得更大和复杂的应用程序更易于管理。

Vuex的工作流程

当用户与应用程序交互并触发操作时,该操作可能会更改vuex状态。 以下是更改vuex状态的工作流程:

  • 组件分发一个action
  • action调用api或者执行其他异步操作
  • API响应将特定数据返回到action
  • action调用mutation以更新状态
  • mutation更改状态并通知所有已注册的观察程序
  • 所有注册了此mutation的组件都会进行更新

Vuex和localStorage的区别

在了解了Vuex和localStorage的基础知识后,我们来看一下它们之间的区别。

  • 这两个工具被设计为不同的目的:Vuex旨在管理Vue.js应用程序中的状态,而localStorage则提供了一种简单的本地存储机制。
  • 生命周期不同:localStorage中保存的数据可以长期存在,除非明确清除,而Vuex存储的数据仅在Vuex实例存在的生命周期内存在。
  • 面向的对象不同:localStorage面向键/值对,而Vuex面向状态(状态是可以作为字典键的对象)。

对于数据量较大的情况, localStorage性能上可能会有问题。而Vuex由于是专门维护状态的库,所以无论是数据量还是读写操作都比localStorage更为高效、快速。

总结

当然,在选择使用状态管理器还是本地存储时,需要考虑很多因素。localStorage适合保存少量且轻量级的数据,可以很容易地读写,不需要依赖服务器。而Vuex适合处理大型复杂应用程序的状态管理。它提供了丰富的API和组件更新生命周期,可以显着简化Vue.js应用程序中的状态管理。

项目中的使用场景同样需要根据实际情况来进行选择。比如,在多个页面或者插件之间共享一些状态,使用Vuex会更加方便快捷,而对于用户信息、token这类轻量级且长期存在的内容则更适合使用localStorage进行缓存。

最后,通过使用这两种工具,你可以更好地维护网页应用程序的状态,并构建更高效的用户体验。

到此这篇关于Vuex localStorage的具体使用的文章就介绍到这了,更多相关Vuex localStorage内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Vuex localStorage的具体使用

本文链接: https://lsjlt.com/news/214009.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Vuex localStorage的具体使用
    目录状态管理的必要性localStorage储存和获取数据生命周期VuexVuex的概念Vuex的工作流程Vuex和localStorage的区别总结前端开发中,状态管理是一个很重要...
    99+
    2023-05-20
    Vuex localStorage
  • Quartz.NET的具体使用
    目录一、什么是Quartz.NET?二、Quartz.NET可以做什么?三、ASP.NET Core如何使用Quartz.NET?四、Quartz的cron表达式一、什么是Quart...
    99+
    2024-04-02
  • QtQFrame的具体使用
    目录1.概述2.常用数据接口3.示例1.概述 void setFrameShape(Shape) QFrame继承QWidget,QFrame类是具有框架的小部件的基类,例如QLab...
    99+
    2024-04-02
  • pythonhttpx的具体使用
    目录什么是 Httpx安装 Httpx发送 HTTP 请求发送异步 HTTP 请求设置请求标头设置请求参数发送请求体发送 JSON 数据设置超时错误处理证书验证使用代理上传文件使用 ...
    99+
    2023-05-14
    python httpx
  • np.unique()的具体使用
    目录一、np.unique() 介绍二、np.unique() 原型三、实例参考链接一、np.unique() 介绍 对于一维数组或者列表,np.unique() 函数 去除其中重复...
    99+
    2023-03-14
    np.unique()使用 np.unique()
  • JavaScheduledExecutorService的具体使用
    目录1. 延迟不循环任务schedule方法2. 延迟且循环cheduleAtFixedRate方法3. 严格按照一定时间间隔执行``ScheduledExecutorService...
    99+
    2023-05-19
    ScheduledExecutorService
  • python__add__()的具体使用
    __add__(),  同一个类,两个对象相加的实现逻辑,重写 + class Myclass(object): def __init__(self,value):...
    99+
    2023-02-27
    python __add__()使用 python __add__
  • vue2.0+vuex+localStorage代办事项应用的示例分析
    这篇文章将为大家详细讲解有关vue2.0+vuex+localStorage代办事项应用的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。代码预览vuex官方文档 ...
    99+
    2024-04-02
  • GNU Parallel的具体使用
    它是什么? GNU Parallel是一个shell工具,为了在一台或多台计算机上并行的执行计算任务,一个计算任务可以是一条shell命令或者一个以每一行做为输入的脚本程序。通常的输入是文件列表、主机列表、用户列表、U...
    99+
    2022-06-04
    GNU Parallel
  • numpy.reshape(-1,1)的具体使用
    数组新的shape属性应该要与原来的配套,如果等于-1的话,那么Numpy会根据剩下的维度计算出数组的另外一个shape属性值。 举个例子: x = np.array([[2, 0]...
    99+
    2024-04-02
  • JavaScript WeakMap的具体使用
    目录前言一、为何选用WeakMap1. Map2. WeakMap二、WeakMap原型方法总结前言 我在处理一个复杂对象的深拷贝方法时接触到WeakMap, 其作为缓存结构以解决对...
    99+
    2023-02-17
    JavaScript WeakMap
  • GO的range具体使用
    目录GO 语言的 for…range  能做什么呢?for…range  如何使用 ?数组 array切片 slicechannel 通道for…rang...
    99+
    2024-04-02
  • C# Volatile的具体使用
    目录​1.Overview2.Detail3.Conclusion4.Reference​1.Overview 经常研究.NET源码库的小伙伴会经常看到一个关...
    99+
    2024-04-02
  • python-httpx的具体使用
    目录安装创建请求自定义头部超时时间SSL证书认证请求类型Query ParamsForm表单文件上传JSON二进制数据响应响应类型Cookie重定向历史httpx.Client合并/...
    99+
    2024-04-02
  • podman容器工具的具体使用
    目录podman简介Podman和Docker的主要区别是什么?podman安装使用配置镜像加速相关工具podman简介 Podman是一个开源项目,可在大多数Linux平台上使用并...
    99+
    2024-04-02
  • Python中collections.Counter()的具体使用
    目录Counter类创建计数值的访问与缺失的键计数器的更新键的删除elements()most_common([n])fromkeys浅拷贝copy算术和集合操作常用操作Counter类 Counter类的目的是用...
    99+
    2022-06-02
    Python collections.Counter()
  • Redis中ZSet的具体使用
    目录一、题目二、ZSet 简单使用三、ZSet 结构四、跳跃表五、场景案例一、题目 ZSet能用在哪些场景?跳表查找的过程,时间复杂度 二、ZSet 简单使用 举个例子,fruit-price 是一个有序集合键,这个有序...
    99+
    2022-07-18
    RedisZSet使用
  • React中useRef的具体使用
    相信有过React使用经验的人对ref都会熟悉,它可以用来获取组件实例对象或者是DOM对象。 而useRef这个hooks函数,除了传统的用法之外,它还可以“跨渲染周期”保存数据。 ...
    99+
    2024-04-02
  • python3之Splash的具体使用
    目录1、Scrapy-Splash的安装2、Splash Lua脚本3、Splash对象的属性与方法4、响应对象5、元素对象6、Splash HTTP API调用7、实例Splash...
    99+
    2024-04-02
  • pandas.DataFrame.iloc的具体使用详解
    目录第一种 整数做索引第二种 列表或数组做索引第三种 利用切片做索引第四种 Boolean数组做索引第五种 带一个参数的可调用函数做索引今天学习时遇到了这个方法,为了加深理解做一下笔...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作