浅谈Vuex

    本文基本上是官方的盗版,用通俗易懂的文字讲解Vuex。学习一个新技术,必须要清楚两个W,"What 和Why"。当你了解了Vuex的优势,才会研究how。

Vuex是什么?

    Vuex 类似 Redux 的状态管理器,vuex是一个专门为vue.js设计的集中式状态管理架构,用来管理Vue的所有组件状态。我认为就是前端为了方便数据的操作而建立的一个“前端数据库”。

为什么使用Vuex?

    当你打算开发大型单页应用,会出现多个视图组件依赖同一个状态,来自不同视图的行为需要变更同一个状态。遇到以上情况时候,你就应该考虑使用Vuex了,它能把组件的共享状态抽取出来,当做一个全局单例模式进行管理。这样不管你在何处改变状态,都会通知使用该状态的组件做出相应修改。

    简单点,且听下文分解。模块间是不共享作用域的,那么B模块要拿到A模块的数据,抛开什么状态管理什么Vuex,我们会想到全局变量这个东东,且命为store吧,A模块共享的数据作为属性挂到B模块上,共享数据且名为state。B模块拿到A模块的数据不会一尘不变的,A要操作这个数据,那么要在数据state改变的时候告知B模块,那写个自定义事件。其实Vuex大致如此。

如何使用?

    既然说Vuex类似一个“前端数据库”,我们就聊聊数据库的操作。首先,数据库你得能取数据吧?那么得有一套取数据的 API,既然是获取,那就叫getter 吧。我们还得存数据,存数据就是对数据库的修改,这些 API,就叫mutation。Vuex生成的仓库也就这么出来了。State 就是数据库。Mutations 就是我们把数据存入数据库的 API,用来修改state 的。getters 是我们从数据库里取数据的 API。后端从前端拿到了数据,总要做个处理吧,处理完了再存到数据库中。其实这就是action的过程。然后我们把这几部分用store 包一下,” vuex “就捣置出来了。

     vuex基本使用流程为: 在action中分发异步请求, 在异步回调中提交mutation,在mutation中修改state, 使用getters对state的值进行计算封装.。

 项目引入 Vuex 的方式如下:

    在根实例中注册 store 选项,这样该 store 实例会注入到根组件下的所有子组件中,方便后面我们在每个子组件中调用 store 中 state 里存储的数据。

    为了能够很好的隔离页面view视图与数据的请求, 同时在使用vuex的action分发异步请求后,能够接收回调,进行了以下封装:

一. http的封装

http模块包含3个文件,config.js,http.js,api.js

config.js 封装网关域名,及所有接口的方法名

http.js 封装axios基本的get, post请求

api.js 封装接口名及对应的传输字段,回调响应数据

二. vuex模块的封装

vuex通过action异步请求,为了回调执行状态

1. view层需要渲染的数据

异步请求后,需要提交mutation,修改state,使用getters计算

2. 执行某个功能动作,

异步请求后,不需要提交mutation,不需要使用state中的数据

在页面调用如下:

   mapGetters,重点是mapGetters写在了哪儿。写在了 computed里面,这说明虽然getter我们写的是函数,但是我们应该把它当成计算属性来用,action放在了 methods 里面,说明我们应该把它当成函数来用。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容

  • 最近和优秀的人待久了,越发觉得自己之所以不厉害真的是因为不努力。 虽然天赋很多时候有着很重要的作用。 但这个世界上...
    笃韫阅读 239评论 0 0
  • 我很喜欢一句话:愿你的厨房有烟火,客厅有笑容,卧室有拥抱,爱人跟你一蔬一饭,你跟爱人一颦一笑。 今日是回城的日子,...
    快乐拉拉阅读 246评论 0 0