Vuex基本概念

news2024/11/20 9:32:02

一、基本概念

vuex:为了解决不关联的组件整个网站状态数据共享问题,专为Vue.js开发的状态管理模式。采用集中式存储管理应用的所有组件状态,并以相应的规则保证状态以一种可预测的方式发生变化。

vuex有5个主要成员:

state:用来存储数据

mutations:修改state中的数据

actions:处理异步操作数据

getters:类似计算属性,对state中的数据做了一些处理

modules:用来对复杂业务分模块,每个模块也可以有state、mutations、actions、getters。

项目目录结构一般为:

二、vuex中mutations和actions的区别

(1)流程顺序:(actions中调用mutations中的方法)

相应视图-->修改state,拆分为两部分,视图触发action,action再触发mutation。一般会在actions方法中进行commit('mutation中的回调方法', action异步获取到的数据)

(2)角色定位:

基于流程顺序,二者扮演不同的角色。mutation:专注于修改state,理论上是修改state的唯一途径

action:业务代码,异步请求

(3)同步/异步限制

角色不同,二者有不同的限制。mutation必须同步执行action可以异步,但不能直接操作state,而且可以通过action来提交mutations。

三、dispatch和commit的用法和区别?

用法:

dispach的是action的方法,commit的是mutations的方法。

dispatch含有异步操作,比如向后台提交数据。写法为:this.$store.dispatch('action方法名', 值)

commit:同步操作,写法:this.$store.commit('mutations方法名',值)

区别:

(1)action提交的是mutation,而不是直接变更状态,可以包含任意的操作。

(2)dispatch推送一个action

dispatch异步操作this.$store.dispatch('action的方法', arg),调用actions里的方法。

commit同步操作this.$store.commit('mutations里的方法',arg),调用mutations里的方法。

在mutations中使用箭头函数更改state中的数据,然后在actions中的函数中通过commit('SET_TOKEN', tokenSuccess)来调用mutations函数并传参,才能再store存储成功。在需要的组件中使用this.$store.dispatch('actions')来调取store里的对应方法,从而更新。

四、vuex如何做到持久化?

vuex是保存在内存中的,刷新之后就会丢失。通过vuex-presisit插件来做持久化。

五、vuex VS localStorage/sessionStorage

vuex:都可对数据进行统一管理。存储数据更加安全,但是当页面刷新后,vuex中state存储的数据同时也会被更新,vuex存储的数据不能持久化,需要监听维持vuex存储的数据状态持久化。

localStorage/sessionStorage:页面刷新不会丢失数据

解决页面刷新导致vuex数据也被更新可以参考https://juejin.cn/post/6918684399659646989

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

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

相关文章

DAMA数据管理知识体系指南之数据架构管理

第4章 4.1 简介 数据架构管理是定义和维护如下规范的过程: 提供标准的、通用的业务术语/辞典。 表达战略性的数据需求。 为满足如上需求,概述高层次的整合设计。 使企业战略和相关业务架构相一致。 数据架构是用于定义数据需求、指导对数据资产的整合和…

【C++】从0到1入门C++编程学习笔记 - 提高编程篇:STL常用容器(vector容器)

文章目录一、vector基本概念二、vector构造函数三、vector赋值操作四、vector容量和大小五、vector插入和删除六、vector数据存取七、vector互换容器八、vector预留空间一、vector基本概念 功能: vector数据结构和数组非常相似,也称为单端数组 vector…

Discord多账号抢白名单,如何避免账号关联被封号?

相信玩NFT项目的都不会对Discord陌生,现在NFT的项目都会开Discord伺服器,并且将内容公告在上面、在伺服器里互动,所以如果你想参与NFT的世界,学会使用Discord是一件非常重要的事情。 东哥前2天也出了关于discord如何使用、如何抢白…

很多网站、APP 前段时间一下都变灰了。 先来感受一下变灰后的效果。

很多网站、APP 前段时间一下都变灰了。 先来感受一下变灰后的效果。 这种灰色的效果怎么实现的呢?如何做到图片、文字、按钮都变灰的效果呢? 方案 1,换一套灰色的 UI,那显然成本太大了,用脚指头想一想就知道不太可能…

C语言---选择排序和堆排序

文章目录前言一、简单选择排序1.简介2.算法思路3.代码实现二、堆排序1.简介2.算法思路3.代码实现总结前言 堆排序是选择排序的一种,今天我们讲解一下堆排序和简单选择排序 一、简单选择排序 1.简介 选择排序(Selection sort)是一种简单直观…

ZoomCharts JavaScript 1.20.2 Crack

深入探索数据 令人惊叹的数据可视化方式 - 这里是 ZoomCharts JavaScript 图表的不同交互可能性和功能。 内容向下钻取和向上钻取 深入研究特定数据点或获得更大的图景。通过放大或缩小与图表进行物理交互,浏览不同的数据级别。 数据过滤 选择一个或多个数据点查看具…

【软件测试面试】他凭什么能在面试中狂揽10个offer?

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 小高: 记…

2023年屏蔽iOS16系统更新,去除小红点,最新方法

昨天开始,屏蔽iOS系统更新的旧文件已经过期,许多老粉收到了更新提醒,因此现在给大家带来最新的屏蔽文件 这个文件可以屏蔽iOS系统更新和提醒,防止手机自动下载更新。 这个方法支持所有 iPhone 和 iPad,支持所有 iOS 和…

# Android未来几年发展规划【纵横发展】

前言 如果你是移动开发人员,那么首先要跟上技术的最新发展趋势,并时刻关注新事物,即使有时你甚至需要质疑自己的信仰。应用开发人员一方面一直在努力想办法简化和缩短开发过程,另一方面也在努力构建最佳的设计和用户体验。每年我…

【MPP数据库】StarRocks分区、分桶探索与实践

1.先学习一下StarRocks的架构图: 2.基本概念 2.1 Row & Column 一张表包括行(Row)和列(Column)。Row 即用户的一行数据。Column 用于描述一行数据中不同的字段。 Column 可以分为两大类:Key 和 Value…

leetcode刷题记录总结-7.递归回溯算法(进行中)

文章目录零、回溯算法理论总览什么是回溯法回溯法的效率回溯法解决的问题如何理解回溯法回溯法模板一、组合问题[77. 组合](https://leetcode.cn/problems/combinations/)题解递归实现组合型枚举:每个点选与不选子集问题模板组合问题解决思路回溯思路:遍…

GAMES101笔记:辐射度量学(上)

Radiometry 辐射度量学 如何描述光照,定义了一系列的方法和单位准确度量光的空间属性: Radiant fluxintensityirradianceradiance 以物理正确的方式进行光照计算 Radiant Energy and Flux (Power) Radiant Energy 定义 Radiant Energy 是电磁辐射的能…

6、数据的合并

目录 一、添加变量即横向合并。 二、添加个案即纵向合并 在实际工作中,为了提高效率,经常需要将一份数据分成几部分分别录入,或为了便于分析,又将几个数据文件合并成一个总的数据文件。为此,SPSS提供了两种合并数据文…

【7】【vue】【vue3】

1、项目结构: asserts用来存放静态资源的(一些图片,公共的css文件等) components用来存放vue的组件(vue是组件开发) App.vue是主入口组件 (根组件,所有组件都是从这里开始&#xff…

在 PyTorch 中使用梯度检查点在GPU 上训练更大的模型

作为机器学习从业者,我们经常会遇到这样的情况,想要训练一个比较大的模型,而 GPU 却因为内存不足而无法训练它。当我们在出于安全原因不允许在云计算的环境中工作时,这个问题经常会出现。在这样的环境中,我们无法足够快…

万向节锁问题

以前一直听说过万向节锁当时觉得问题太难就没去认真分析最近在B站找了一些视频看懂了。简单来说旋转是有顺序的,比如transform面板有三个旋转分量,你先调整y,再调整x,最后调整z按照正常思路来说,调整x轴是在y轴旋转的基…

想成为数据分析师,看这里,数据分析必备的43个Excel函数

目录 前言 函数分类: 关联匹配类清洗处理类逻辑运算类计算统计类时间序列类 前言 Excel是我们工作中经常使用的一种工具,对于数据分析来说,这也是处理数据最基础的工具。 很多传统行业的数据分析师甚至只要掌握Excel和SQL即可。 对于初学者…

【DataX】datax | datax-web | win搭建datax-web环境

一、环境准备 1、jdk8 2、maven 3、mysql7 4、python3 5、window10 6、idea 7、2345解压(win支持tar.gz解压) 8、git 二、操作步骤 1、datax操作步骤 1)下载datax http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz 2&am…

ES6 环境下 Openlayers 集成使用 ol-ext 以及在线示例

ES6 环境下 Openlayers 集成使用 ol-ext 以及在线示例ol-ext 简介版本说明打包后体积集成方式在线示例最近打算重新封装一下 Openlayers,方便前端人员使用,基础功能没什么可说的,毕竟 Openlayers 的示例和 API 已经非常友好了。 想增加一些地…

2023-01-31 CSDN问答中如何防止和惩罚 “偷代码操作“

CSDN问答中如何防止和惩罚 "偷代码操作"前言一. 代码隐藏保护(CSDN官方回复目前无此功能)二. 先占位后抄袭的处理三. 编辑记录是照妖镜总结前言 随着问答的参与时间累积, 逐渐的碰到了一些问题, 常在河边走, 怎能不湿鞋, 原先看到抄代码结果原创没被采纳, 只能报以同…