Vuex①(简介、原理)

article/2025/4/22 9:31:05

文章目录

  • 什么是Vuex
  • Vue版求和案例
  • Vuex的工作原理

什么是Vuex

Vuex:专门在 Vue 中实现集中式状态(数据)管理的一个 Vue 插件,对 vue 应用中多个组件的共享状态进行集中式的管理(读/写),也是一种组件间通信的方式,且适用于任意组件间通信。

这里的状态我们可以暂且理解为数据

为了更好地理解Vuex我们可以举一个例子:

假如现在A组件有一些数据,B、C、D组件都想要,如果使用全局事件总线我们可以这么做:
在这里插入图片描述
以上我们只考虑了读取,如果我们现在想修改数据,那么我们就要把修改的数据通过B、C、D组件传给A,如下图所示:
在这里插入图片描述

可以发现如果我们想要实现某一部分数据在所有(部分)的组件中实现共享是很麻烦的。

而Vuex这个插件可以让共享数据实现的非常轻松!

比如现在我们想把x=1这个数据共享:
在这里插入图片描述
我们可以调用特殊的API实现数据的读取修改。

从以上我们可以发现,Vuex的使用场景:

  • 多个组件依赖于同一状态
  • 来自不同组件的行为需要变更同一状态

Vue版求和案例

在这里插入图片描述
我们直接写一个Conut组件再在App组件中去引入它,Count组件代码如下:

<template><div><h1>当前求和为:{{sum}}</h1><select v-model.number="n"><option value="1">1</option><option value="2">2</option><option value="3">3</option></select><button @click="increment">+</button><button @click="decrement">-</button><button @click="incrementOdd">当前求和为奇数再加</button><button @click="incrementWait">等一等再加</button></div>
</template><script>export default {name:'Count',data() {return {n:1, //用户选择的数字sum:0 //当前的和}},methods: {increment(){this.sum += this.n},decrement(){this.sum -= this.n},incrementOdd(){if(this.sum % 2){this.sum += this.n}},incrementWait(){setTimeout(()=>{this.sum += this.n},500)},},}
</script><style lang="css">button{margin-left: 5px;}
</style>

Vuex的工作原理

在这里插入图片描述
我们先来看Vuex的三个重要组成部分:
在这里插入图片描述

  • Actions代表动作行为
  • Mutations代表修改、加工、维护
  • state代表状态(数据)

我们说的要把数据交给Vuex进行管理,其实就是把数据交给Vues里的state对象进行管理。

接下来我们可以看到左边的Vue组件,上面带有dispatch的箭头表示我们可以在组件中调用一个名为dispatch的API(就拿上面的案例来说你点完+那个按钮之后,你要在组件里表达出来你要还干什么,而dispatch就充当了这个报信的作用)。

这个词在消息的订阅与发布中提到过,译为“分发,派遣”

dispatch是一个函数,我们在调用它的时候需要传入两个参数:

  • 第一个参数:你要进行的动作类型,是一个字符串
  • 第二个参数:动作的具体内容

例如在上面的案例中,我们要把数字加上2,加就是动作类型,2就是动作的具体内容。

dispatch这个箭头的终点指向的是Actions,这个Actions本质也是一个对象。Actions对象一定会有一个key与dispatch方法中的动作类型对应。

例如:

在这里插入图片描述
如上图当你执行完dispatch之后,会立马执行jia对应的回调函数。这个函数调用的时候会收到dispatch的第二个参数2。然后在这个回调函数中我们要自己去调用commit()这个函数:
在这里插入图片描述
commit同样也有两个参数,我们通过这两个参数把行为进行提交,然后我们来到了Mutations,他也是一个Object对象。同样它里面也一定会有对应的key,以及回调函数:
在这里插入图片描述

这个回调函数会拿到两个东西:

  • 整个state对象
  • 行为内容(也就是案例中的2)

随后我们在这个回调函数中写上我们的变化要求,state里面的数据就会更新:
在这里插入图片描述

这个mutate不是API不需要我们去调用

随后Vuex会帮我们重新解析整个组件,然后再去重新渲染 (也就对应着上图的render)

在这里插入图片描述
这里的Actions可以使用Ajax与后端进行交互。也就是说当我们进行一个动作,但是这个动作所对应的值需要发送Ajax请求才能获取的时候,这个Actions就显得尤为重要。但是如果这个值我们是确定的,那么Actions这一步显得有点多余,所以Vuex允许我们在确定值的情况下,在组件中可以直接使用commit()将东西传递给mutations:
在这里插入图片描述
同时在我们有一些简单的业务逻辑的时候,这个Actions也是必不可少的

在这里插入图片描述
这个Devtools代表Vuex官方的的开发者调试工具,它直接与mutations对话,因为mutations才是真正意义上帮助我们修改state的人。

其实我们可以通过生活中的例子去理解这个过程:
在这里插入图片描述
组件相当于客人,Actions相当于服务员,mutations相当于后厨,state相当于菜。客人进门张嘴说话点菜,这个说话就相当于dispatch,服务员记录提交给后厨,也就对应着commit。后厨再去做菜,把菜端上来给客人。而如果客人足够熟悉(也就是明确行为内容)就可以直接跟后厨进行对话,不需要服务员的引导。

另外Vuex的这三个部分都要经过一个人的领导store:

在这里插入图片描述
我们之所以需要它是因为,我们前面调用的dispatch方法是它身上的,commit方法也是它身上的。

这也就意味着我们要让所有的组件实例对象看得到这个store


http://chatgpt.dhexx.cn/article/aBoFHOcS.shtml

相关文章

Vuex介绍 及 工作原理

Vuex介绍 及 工作原理 概念&#xff1a;专门在Vue中实现集中式状态&#xff08;数据&#xff09;管理的一个Vue插件&#xff0c;对vue应用中的多个组件的 共享 状态进行集中式的管理&#xff08;读/写&#xff09;&#xff0c;也是一种组件间通信的方式&#xff0c;且适用于任…

vuex原理解析并实现一个简单的vuex

vuex的作用 官方 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式 库。它采用集中式存储管理应用的所有组件的状态&#xff0c;并以相应的规则保证状态以一种可预测的方式发生变化。 个人理解 简单来说当我们使用 vue 进行项目开发的时候往往会遇到多个组件共享状态的情况…

VueX原理解析以及实现一个简单的Vuex

前言 前端以前是没有状态管理的&#xff0c;直到Fackbook提出一个叫Flux的概念&#xff0c;才有了状态管理。 以前前端是通过MVC模式管理代码&#xff0c;但后来我们使用例如Vue、React、Angular这类通过声明式开发的框架&#xff0c;发现状态很难管理&#xff0c;容易出现状…

Vuex的基本概念和工作原理

详细参见Vuex官网 &#xff1a;Vuex 是什么&#xff1f; | Vuex 什么是Vuex 官网中说道Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式 库。它采用集中式存储管理应用的所有组件的状态&#xff0c;并以相应的规则保证状态以一种可预测的方式发生变化。 什么情况使用Vu…

vuex 工作的原理

描述 vuex 是vue的状态管理工具&#xff0c;是通过全局注入store对象&#xff0c;来实现组件间的状态共享 vuex的构成 1&#xff09;state state是存储的单一状态&#xff0c;是存储的基本数据。 2&#xff09;Getters getters是store的计算属性&#xff0c;对state的加工&a…

vuex工作原理详解

前言 vuex作为vue官方出品的状态管理框架&#xff0c;以及其简单API设计、便捷的开发工具支持&#xff0c;在中大型的vue项目中得到很好的应用。作为flux架构的后起之秀&#xff0c;吸收了前辈redux的各种优点&#xff0c;完美的结合了vue的响应式数据&#xff0c;个人认为开发…

Vuex配置及Vuex原理图分析,简单明了,一遍就明白

配置Vuex npm i vuex3 或npm i vue4 因为是Vue2 使用的是Vuex3 版本 Vue3使用的是Vuex4版本 根据使用的脚手架而定 然后导入Vuex 代码如下 专门设置一个文件夹用来 放vuex 设置 三个属性 // 该文件是Vuex 核心store// 引入Vuex import Vue from vue import Vuex from vuex …

vuex工作原理与流程

vuex工作原理与流程 Vue组件&#xff08;action里面的dispatch )--> actions(commit方法&#xff09; -->mutations&#xff08;Mutate&#xff09;--> state&#xff08;getter&#xff09; -->store更新所有调用vuex的组件&#xff08;Vue Component组件&#x…

Vue知识点整理(五)- vuex(1)- Vuex简介、Vuex工作原理、搭载Vuex环境、求和案例

目录 一、vuex简介 1.1 vuex是什么 1.2 什么时候使用Vuex 二、Vuex工作原理图 2.1 官方vuex工作原理图 2.2 Vuex工作流程 三、搭建Vuex环境 3.1 安装 3.2 引用Vuex 四、案例练习 - 求和案例 4.1 Count.vue 4.2 App.vue 4.3 index.js 一、vuex简介 1.1 vuex是什么…

Vuex框架原理与源码分析

本文授权转自微信公众号“美团点评技术团队”。 作者简介&#xff1a;明裔&#xff0c;美团外卖高级前端研发工程师&#xff0c;2014年加入美团外卖&#xff0c;负责Web主站开发。先后参与了外卖B端、C端、配送等全业务线系统开发后&#xff0c;目前主要负责商家券活动系统。 责…

vuex原理和下载

vuex&#xff1a;状态管理模式 vue全家桶&#xff1a;vue-cli&#xff08;脚手架&#xff09;、vue-router&#xff08;路由管理器&#xff09;、vuex&#xff08;状态管理模式&#xff09; 原理图示&#xff1a; 原理描述&#xff1a; vuex在vue组件外面进行组件状态的管理…

手写Vuex核心原理,再也不怕面试官问我Vuex原理

手写Vuex核心原理 文章目录 手写Vuex核心原理一、核心原理二、基本准备工作三、剖析Vuex本质四、分析Vue.use五、完善install方法六、实现Vuex的state七、实现getter八、实现mutation九、实现actions 一、核心原理 Vuex本质是一个对象Vuex对象有两个属性&#xff0c;一个是ins…

vuex实现原理

文章目录 vuex是什么&#xff1f;为什么会出现&#xff1f;怎么使用&#xff1f;怎么实现&#xff1f;1、给每个实例注入$store2、设置state响应数据3、getters4、mutations5、actions6、modules7、持久化插件plugins8、辅助函数mapState用法命名空间用法实现原理命名空间原理 …

Vuex的实现原理解析(最清晰)

Vuex的实现原理解析(最清晰) Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式,可以帮助我们管理共享状态。 如何在Vue中使用Vuex? 如下先来回顾一下使用Vuex的正确姿势&#xff1a; 引入Vuex插件&#xff1b; // store.js Vue.use(Vuex);将Vuex.Store这个类实例化&…

通俗理解vuex原理---通过vue例子类比

主要通过简单的理解来解释下vuex的基本流程&#xff0c;而这也是vuex难点之一。 首先我们先了解下vuex的作用 vuex其实是集中的数据管理仓库&#xff0c;相当于数据库mongoDB&#xff0c;MySQL等&#xff0c;任何组件都可以存取仓库中的数据。 vuex流程与vue类比 我们看一下…

遇见面试--vuex原理

遇见面试 Vuex原理解析 一、前言 自从学习了VUE框架&#xff0c;其中必不可少的会用到vuex这个核心插件&#xff0c;而且在做项目的时候&#xff0c;基本都会使用&#xff0c;可能你会使用vuex状态管理&#xff0c;但是对vuex原理存在着或多或少的的疑惑或不解&#xff0c;这…

vuex的工作原理

Vuex是做什么的? 官方解释&#xff1a;Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。 它采用 集中式存储管理 应用的所有组件的状态&#xff0c;并以相应的规则保证状态以一种可预测的方式发生变化。Vuex 也集成到 Vue 的官方调试工具 devtools extension&#xff0…

vuex 的实现原理

一、Vuex是什么   Vuex是专门为Vuejs应用程序设计的状态管理工具。它采用集中式存储管理应用的所有组件的状态&#xff0c;并以相应的规则保证状态以一种可预测的方式发生变化。 1、Vuex的构成 由上图&#xff0c;我们可以看出Vuex有以下几个部分构成&#xff1a; 1&#x…

vuex原理

目录 一、 为啥会出现vuex 二 、什么是vuex 三、 怎么使用vuex 四、vue和vuex比较 五、vuex的五个属性 5.1 state 5.2 mutations 5.3 getters 5.4 Actions 5.5 Modules 六、为啥state里的数据可以实现响应式 七、为啥每个组件都可以拿到state里的数据 一、 为啥会出…

vuex的原理

1.vuex的作用 vuex是专门为Vuejs应用程序设计的状态管理工具。其实是集中的数据管理仓库。相当于数据库mongoDB等&#xff0c;任何组件都可以存取仓库中的数据。 vuex的组成部分&#xff1a; state:是存储的基本数据。mutations:提交更改数据。getter:对state加工&#xff0c…