「后端小伙伴来学前端了」Vuex原理图分析及结合生活案例让大家快速理解
封面:
来自一名超级美的学妹:🍉Sunday🍉
前言
上篇文章说了为什么在vue中有了全局事件总线还要引入vuex的问题,这篇着重讲Vuex的原理图,知道原理图才能够明白如何去书写Vuex的代码。
一、原理图
来自于Vuex官网
从图中我们可以看到,vuex中有
Actions、Mutations、State三个对象,先从字面意思上理解下哈
- Actions:翻译过来即为动作、行为的意思
- Mutations:翻译过来有变化、转变的意思
- State:翻译过来就是状态的意思,这里的状态其实就是数据的意思。
另外他们三个全部都是Object对象
{}。
我们拿一个自加的案例来走一遍这个原理图的流程,让大家更快的理解。
偷了点懒,不想重画这张图,就在原图上操作啦(手动狗头保命😁)
完整流程大致就是这八步。至于还没说的
backend API和Devtools,后面有说滴。
思考
大家有没有觉得
Actions所处的位置比较尴尬丫,因为就是转交一下,并没啥其他的作用啊。
其实在Vuex中,是允许
Vue Components直接调用
commitapi的,即如下
我讲到这里,可能大家更觉得
actions没啥用啦,其实是有的,还记得我之前没说的
backend API吗
其实
backend API是另一台服务器。
意思就是当我们调用了
dispatch(zijia)时,并不知道要自加你,这个时候,我们就在
actions中向另一台服务器发送请求,问它我们要自加几。所以这个时候
actions还是有用的。存在必会有存在的价值。
Devtools
这里也顺带说一下吧,意思就是能够在vue-devtools的调试工具里,看到数据的全部变化,以及修改的历史记录
下面再来通过一个生活案例来对这个图进行一个理解性记忆吧。
对了稍稍补充一下,其实在vuex的这个官方图,还少了一点点东西只过它在图中用
vuex来表示了。
actions、mutations、state这三个对象都被store都管着,多这么个领导者是为了更好的状态管理,因为后面会变得越来越复杂。
二、生活案例理解
我们将流程中参与的四个对象分别形象的比喻为客人、服务员、后厨、菜肴,将vuex整体比喻为大酒店
流程解释:
- 客人来到vuex中,客人和服务员说要点xxxx、xxx菜(调用dispatch API,即派发到
actions
)。 - 服务员(
actions
)接收到请求后,再将客人点的菜名提交给(commit()
)给后厨团队。 - 后厨接收到服务员提交过来的菜名,就开始进行制作(即更新数据),然后通过
mutate
(自动触发)传递到State中。 - 菜肴制作好后,通过render渲染,送到客人面前(更新视图)
再假如你和后厨的xdm玩的特别好,特别熟悉,你下次来的时候,就直接越过了服务员,直接和后厨的哥们说,今天还是老样子,后厨的兄弟就懂了。
再或者还有下面的这样情况:
你来到大酒店想直接去找后厨的兄弟,但是最近菜单更新了,服务员拦住你说,我们店的菜肴更新了,你必须要跟我说一下,你要吃什么,才好给你上菜。(菜肴更新了就是向另外一台服务器请求数据的意思)。
希望通过这个小案例,能够让大家更好的记忆。
后语
大家一起加油!!!如若文章中有不足之处,请大家及时指出,在此郑重感谢。
纸上得来终觉浅,绝知此事要躬行。
大家好,我是博主
宁在春:主页一名喜欢文艺却踏上编程这条道路的小青年。
希望:
我们,待别日相见时,都已有所成。
- 「后端小伙伴来学前端了」Vuex 安装&基本使用&案例讲解
- 对一个前端AngularJS,后端OData,ASP.NET Web API案例的理解
- HBase建表高级属性,hbase应用案例看行键设计,HBase和mapreduce结合,从Hbase中读取数据、分析,写入hdfs,从hdfs中读取数据写入Hbase,协处理器和二级索引
- handlebars入门解析,入门教程,应用案例,将的非常好,分析给大家。
- [数据分析方法论]三个案例,快速聚焦数据分析关键价值
- 数据库索引的使用,祝大家快速理解索引的含义
- 前后端分离。前端POST请求参数过长,导致400错误解决办法及分析
- Python编程快速上手――Excel表格创建乘法表案例分析
- 结合生活案例实现rabbitmq消息通信
- java代码实现highchart与数据库数据结合完整案例分析(一)---饼状图
- python2.0_s12_day19_前端结合后端展示客户咨询纪录
- [后端人员耍前端系列]KnockoutJs篇:快速掌握KnockoutJs
- JS回调函数 callback的理解与使用案例分析
- [后端人员耍前端系列]KnockoutJs篇:快速掌握KnockoutJs
- Impala学习--Impala前端代码分析,Impala后端代码分析
- java代码实现highchart与数据库数据结合完整案例分析(二)---折线图
- 数组的详解(一步步结合案例分析 数组的易错及疑难)
- [后端人员耍前端系列]KnockoutJs篇:快速掌握KnockoutJs
- 安全领域中的TTP是什么意思 结合APT-C1案例给大家讲讲三要素
- Python编程快速上手――选择性拷贝操作案例分析