网上也很多文章,但解释起来的确玄乎,小白们很难理解到位。

自问文笔没大神们好只是自己了解了掌握了Vuex用法以及主要思路

但要我解释起来也只能参考大神们的说法

Vuex就是一个全局变量,而这个全局变量增删改查都有自己一套方法,

这样做的好处就是大团队多人协作不容易出错

Vuex小项目的确用的少,但面试基本会问到

如果面试能回答出自己对vuex的理解(并不是生搬硬套百度回来的文章)

基本可以证明对vue理解还是可以的能直接上手项目干活

// ====== (普通的分割线)  ==================

总结(各个类型的 API各司其职):
mutation 只管存,你给我(dispatch)我就存;
action只管中间处理,处理完我就给你,你怎么存我不管;
getter 我只管取,我不改的。
 
action放在了 methods 里面,说明我们应该把它当成函数来用(讲道理,钩子函数也应该可以的)
mutation是写在store里面的,这说明,它就是个半成品,中间量,我们不应该在外面去操作它。
getter写在了 computed 里面,这说明虽然 getter我们写的是函数,但是我们应该把它当成计算属性来用。
 
这些方法都放在store.js文件里
四大方法:state、mutations、getters、action
 
辅助函数是个什么鬼?
简化vuex自带方法(构造器选项)的写法
辅助函数要配合ES6的扩展运算符使用 

// ====== state(仓库) ============
辅助函数:mapState
存放全局参数(存放组件之间共享的数据)
 

 
// ====== mutations(改变) ============
辅助函数:mapMutations
我们要改变 state 的数值的方法,必须写在 mutation 里就可以了
 
虽然mutations也能异步,但真的不赞成在里面写,在 mutation 中混合异步调用会导致你的程序很难调试。
例如,当你调用了两个包含异步回调的 mutation 来改变状态,你怎么知道什么时候回调和哪个先回调呢?
这就是为什么我们要区分这两个概念(一句话反正别在mutations执行异步操作就得了)
 
 

// ====== Action(异步) ============
1.Action 提交的是 mutations,而不是直接变更状态。也就是说,actions会通过mutations,让mutations帮他提交数据的变更。
2.Action 可以包含任意异步操作。ajax、setTimeout、setInterval不在话下
 
虽然mutations也能异步,但真的不赞成在里面写,在 mutation 中混合异步调用会导致你的程序很难调试。
例如,当你调用了两个包含异步回调的 mutation 来改变状态,你怎么知道什么时候回调和哪个先回调呢?
这就是为什么我们要区分这两个概念(一句话反正别在mutations执行异步操作就得了)
 

// ====== getters(过滤器) ============
辅助函数:mapGetters;当前组件如果只读取就不用写这个
实时计算,里面的值无论在哪只要被被改变都会立刻触发下面的方法
getters里面的方法操作的变量不能重复,不然报错
简单说两个方法不能操作同一个变量
方法名要跟return变量名一样
 

看到这里Vuex的基本增删改查代码贴完了,
掌握了基本增删改查后进阶就是module(模块)了。
项目一大Vuex全局变量就变多了,这时候就应该module出现让Vuex全局变量能更分散
分享两个我看过个人觉得写得不错的文章
 
 后话:
  Vuex需要一套方法来控制它自己的全局变量,这套方法虽然有点绕,但理解了就觉得不难了
  module部分代码我还没写,虽然有点烂尾的感觉,但其实Vuex的基本增删改查掌握了,module也不难了
 
 
 
 
 
 
 
 
 
 
 

vue的Vuex的更多相关文章

  1. Vue 2.0 + Vue Router + Vuex

    用 Vue.js 2.x 与相配套的 Vue Router.Vuex 搭建了一个最基本的后台管理系统的骨架. 当然先要安装 node.js(包括了 npm).vue-cli 项目结构如图所示: ass ...

  2. Vue之Vuex

    一.什么是vuex Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化.简单来说就是一个数据统一 ...

  3. requirejs、vue、vuex、vue-route的结合使用,您认为可行吗?

    在五一节之前和一网友讨论前端技术时,对方提到vue.vue-route如果配合requirejs应用.当时的我没有想得很明白,也没能这位网友一个准确的回复,但我许诺于他五一研究后给他一个回复.本是一天 ...

  4. Vue中Vuex的详解与使用(简洁易懂的入门小实例)

    怎么安装 Vuex 我就不介绍了,官网上有 就是 npm install xxx 之类的.(其实就是懒~~~哈哈) 那么现在就开始正文部分了 众所周知 Vuex 是什么呢?是用来干嘛的呢? Vuex ...

  5. vue:vuex中mapState、mapGetters、mapActions辅助函数及Module的使用

    一.普通store中使用mapState.mapGetters辅助函数: 在src目录下建立store文件夹: ​ index.js如下: import Vue from 'vue'; import ...

  6. vue+vue-router+vuex实战

    shopping vue + vue-router + vuex实现电商网站 效果展示 install 下载代码: git clone https://github.com/chenchangyuan ...

  7. 15.vue动画& vuex

    Vue.config.productionTip = false; ==是否显示提示信息== ==import/export== export xxx 必须跟跟对象或者和定义一起 对象: export ...

  8. Vue、Vuex+Cookie 实现自动登陆 。

    概述 1.自动登陆实现思路. 2.vuex + cookie 多标签页状态保持. 自动登陆的需求: 1.登陆时勾选自动登陆,退出登陆或登陆到期后再次登陆后自动填写表单(记住密码)或访问登陆页自动登陆. ...

  9. 深入浅出的webpack4构建工具--webpack4+vue+route+vuex项目构建(十七)

    阅读目录 一:vue传值方式有哪些? 二:理解使用Vuex 三:webpack4+vue+route+vuex 项目架构 回到顶部 一:vue传值方式有哪些? 在vue项目开发过程中,经常会使用组件来 ...

  10. vue:vuex详解

    一.什么是Vuex? https://vuex.vuejs.org/zh-cn 官方说法:Vuex 是一个专为 Vue.js应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相 ...

随机推荐

  1. Python之路(第三十八篇) 并发编程:进程同步锁/互斥锁、信号量、事件、队列、生产者消费者模型

    一.进程锁(同步锁/互斥锁) 进程之间数据不共享,但是共享同一套文件系统,所以访问同一个文件,或同一个打印终端,是没有问题的, 而共享带来的是竞争,竞争带来的结果就是错乱,如何控制,就是加锁处理. 例 ...

  2. 查看Chrome密码只需一段代码

    在Chrome浏览器的地址栏里输入“ chrome://chrome/settings/passwords ”,然后Chrome自动帮你保存的密码就会瞬间被曝露出来. 强调一下,只要不是在本机上输入以 ...

  3. CUDA C

    一.CUDA结构 硬件:GPU(Graphics Processing Unit)   SM(Streaming Multiprocessor)     SP(Streaming Processor) ...

  4. linu输出重定向

    1.tee命令 ls | tee filename #若出现Permission Denied使用下面 ls | sudo tee filename #清空filename后重写 ls | sudo ...

  5. vue中 关于$emit的用法

    1.父组件可以使用 props 把数据传给子组件.2.子组件可以使用 $emit 触发父组件的自定义事件. vm.$emit( event, arg ) //触发当前实例上的事件 vm.$on( ev ...

  6. VMware Workstation:安装windows xp系统

    https://blog.csdn.net/nicergj/article/details/83651603

  7. laravel 对接 UCenter 基础

    说明:1,运行环境  laravel 5.3 php7+nginx+mysql 2,使用安装包  https://github.com/goodspb/laravel5-ucenter  上面有对接方 ...

  8. windows安装zookeeper

    ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供一致性服务的软件,提供的功 ...

  9. shell编写自动化安装dhcp服务

    #!/bin/bash#Auth:Darius#自动化安装dhcp服务#"$1"为测试IP,用来查看IP段是否能通eno=`ifconfig|awk '{print $1}'|he ...

  10. (转)jira7.2安装、中文及破解

    转自:http://www.cnblogs.com/ilanni/p/6200875.html 本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanni ...