Vuex详解

news/2025/2/12 2:33:06/

Vuex 是什么?

官网解释:

        Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式 + 库。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。

        组件之间的传值有哪些?有父子通讯,兄弟组件通讯......但是传参对于多层嵌套就显得非常繁琐,代码维护也会非常麻烦。因此vuex就是把组件共享状态抽取出来以一个全局单例模式管理,把共享的数据函数放进vuex中,任何组件都可以进行使用。

什么时候我们该使用它?

答案是:需要共享状态或数据的时候。

安装方式Yarn、npm或自己构建

 使用NPM命令

npm install vuex@next --save

使用Yarn命令

yarn add vuex@next --save

自己构建

git clone https://github.com/vuejs/vuex.git node_modules/vuex
cd node_modules/vuex
yarn
yarn build

五个变量解释

     1、 state  

        提供唯一的公共数据源,有共享的数据统一放到store的state进行储存,相似与data。

 在vuex中state中定义数据,可以在任何组件中进行调用。

     2、getter

     类似于vue中的computed,进行缓存,对于Store中的数据进行加工处理形成新的数据

   

3、Mutation

   更改 Vuex 的 store 中的状态的唯一方法是提交 mutation。Vuex 中的 mutation 非常类似于事件:每个 mutation 都有一个字符串的事件类型 (type)和一个回调函数 (handler)。这个回调函数就是我们实际进行状态更改的地方,并且它会接受 state 作为第一个参数:

4、Action 

        Action和Mutation相似,一般不用Mutation 异步操作,若要进行异步操作,使用Action

原因:为了方便devtools打个快照存下来,方便管理维护。所以说这个只是规范,而不是逻辑的不允许,只是为了让这个工具能够追踪数据变化而已

5、Modules

        当遇见大型项目时,数据量大,store就会显得很臃肿

为了解决以上问题,Vuex 允许我们将 store 分割成模块(module)。每个模块拥有自己的 state、mutation、action、getter、甚至是嵌套子模块——从上至下进行同样方式的分割

vuex中store存储

store.commit和store.dispatch的区别及用法

// 以载荷形式
store.commit('increment',{amount: 10   //这是额外的参数
})// 或者使用对象风格的提交方式
store.commit({type: 'increment',amount: 10   //这是额外的参数
})

主要区别:

1、dispatch:含有异步操作,数据提交至 actions ,可用于向后台提交数据

        写法示例: this.$store.dispatch('isLogin', true);

2、commit:同步操作,数据提交至 mutations ,可用于登录成功后读取用户信息写到缓存里

      写法示例: this.$store.commit('loginStatus', 1);

两者都可以以载荷形式或者对象风格的方式进行提交


http://www.ppmy.cn/news/74078.html

相关文章

编辑距离00

题目链接 爬楼梯 题目描述 注意点 word1 和 word2 由小写英文字母组成返回将 word1 转换成 word2 所使用的最少操作数 解答思路 本题本质上的操作只有三种:在单词 A 中插入一个字符;在单词 B 中插入一个字符;修改单词 A 的一个字符&…

C++爱好者的自我修养(14):常量的定义

文章目录 1.什么是常量?2.常量的类型2.1整数常量2.2浮点数常量2.3布尔常量2.4字符常量2.5字符串常量 3.定义常量的格式3.1使用#define预处理器3.2使用const关键字3.3特别注意 4.参考资料 1.什么是常量? 常量是固定值,在程序执行期间不会改变…

软件工程还是网络安全专业好

这个问题需要根据个人的兴趣和职业规划来选择。 从兴趣方面来看,如果你对计算机系统的设计和开发更感兴趣,那么选择软件工程专业可能更适合你。如果你对计算机系统的安全性更感兴趣,那么选择网络安全专业可能更适合你。 从职业规划方面来看…

每日学术速递5.21

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.CV 1.Going Denser with Open-Vocabulary Part Segmenta 标题:通过开放式词汇部分分割变得更密集 作者:Peize Sun, Shoufa Chen, Chenchen Zhu, Fanyi Xiao, Pi…

5月22号软件资讯更新合集.....

DHorse v1.1.1 发布,基于 k8s 的发布平台 综述 DHorse 是一个简单易用、以应用为中心的云原生 DevOps 系统,具有持续集成、持续部署、微服务治理等功能,无需安装依赖 Docker、Maven、Node 等环境即可发布 Java 和 Node 应用,主要…

0601-指针的基础

内存 物理存储器和存储地址空间 物理存储器:实际存在的具体存储器芯片。比如:内存条、RAM芯片、ROM芯片。 存储地址空间:对存储器编码的范围。 编码:对每个物理存储单元(一个字节)分配一个号码寻址&…

Python学习笔记——《吴恩达Machine Learning》逻辑回归例程

文章目录 逻辑回归和线性回归的区别?正则化逻辑回归逻辑回归中的梯度下降: 模型预测案例解决二分类问题:不同的 λ \lambda λ会产生不同的分类结果: 逻辑回归和线性回归的区别? 逻辑回归可以理解为线性回归的一个plus版&#xf…

Google 广告投放实操,小白入门看这篇就够了!

相信很多人做跨境电商都迈不过Google广告这道坎,许多卖家尝试在Google上投放广告,但却发现效果并不理想。今天东哥和大家来讨论一下Google广告投放的一些策略,看看能不能帮助大家取得更好的效果。 Google 广告投放实操 在实操开始前&#xff…