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

自问文笔没大神们好只是自己了解了掌握了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 数据可视化 -- 真实数据的噪声平滑处理

    平滑数据噪声的一个简单朴素的做法是,对窗口(样本)求平均,然后仅仅绘制出给定窗口的平均值,而不是所有的数据点. import matplotlib.pyplot as plt import numpy ...

  2. 【mysql】:mysql性能优化总结

    一.Mysql引擎概述 1.MyISAM存储引擎 MyISAM表是独立于操作系统的,这说明可以轻松地将其从Windows服务器移植到Linux服务器:每当我们建立一个MyISAM引擎的表时,就会在本地 ...

  3. 解决 ERROR: missing Change-Id in commit message footer 问题

    提交代码操作 git push origin HEAD:refs/for/XXX,提示失败ERROR: missing Change-Id in commit message footer,丢失Cha ...

  4. 微信小程序开发之搞懂flex布局5——cross axis

    Cross Axis——交叉轴,与Main Axis(主轴)垂直交叉. main axis is row or row-reverse the cross axis runs down the col ...

  5. python中3个连续的单引号是什么意思?''' ... ''' 这样的引号是什么意思?

  6. python3+ selenium3开发环境搭建

    环境搭建 基于python3和selenium3做自动化测试,俗话说:工欲善其事必先利其器:没有金刚钻就不揽那瓷器活,磨刀不误砍柴工,因此你必须会搭建基本的开发环境,掌握python基本的语法和一个I ...

  7. mysql 8 windows 下安装

    1.下载 mysql8 需要下载 window的 zip版本 2.解压 D:\software\mysql\mysql-8.0.16-winx64 2.在这个目录下创建一个 my.ini 的文件 [m ...

  8. C#项目学习记录

    1,   Visual Studio Code 添加VS 2017的开发人员命令提示符---C#编译环境 2,  C#编译器和CLI的安装 注意:自己的电脑上配置环境变量时,配置在系统变量的Path中 ...

  9. Github使用:使用github用作自己的免费域名

    1.创建一个新仓库 --- 删除里面的文件 --- Git上传文件到新仓库(必须有index.html) 2. 点击新仓库的setting,下滑找到GitHub Pages ---- 点击第一行的链接 ...

  10. [swarthmore cs75] Compiler 1 – Adder

    课程回顾 Swarthmore学院16年开的编译系统课,总共10次大作业.本随笔记录了相关的课堂笔记以及第3次大作业. 编译的过程:首先解析(parse)源代码,然后成抽象语法树(AST),再生成汇编 ...