手把手教你使用Vuex(三)
2.mutation属性
了解:
mutation是更改Vuex的store中的状态的唯一方法。非常类似于事件,官网说的“每个mutation都有一个字符串的事件类型和一个回调函数”,这个类型其实就是函数名,回调函数就相当于函数体。
使用:
mutation也会接收state作为第一参数
调用时不能像之前那么直接调用了,“要唤醒一个mutation handler,你需要以相应的type调用store.commit方法”
可以看到我写有一个type参数,这个传进去的额外参数,叫做mutation的载荷(payload),大多数情况下,载荷应该是一个对象,这样可以包含多个字段并且记录的mutation会更易读:
对象风格提交方式:
为了避免混淆,我把参数改成了typeCl,commit对象中type属性后填函数名字,mutation函数中的代码不变
注意事项:
1️⃣ 最好提前在你的store中初始化好所有所需属性
2️⃣ 当需要在对象上添加新属性时,应该:
- 使用 Vue.set( obj , ' newProp ' , 123)
- 或者,以新对象替换老对象。例如,利用对象展开符
state.obj = { ...state.obj, newProp: 123 }
3️⃣ 不强制的使用常量代替mutation事件类型,看团队和个人习惯
新建一个mutation-type.js放mutation名字常量
在mutation.js中引入mutation-type.js
4️⃣ mutation在使用的时候必须是同步函数,如果你想改变count的值,通过mutation中两个包含异步回调都改变了这个状态,那你怎么知道什么时候回调,怎么知道哪个先回调呢?所以mutation必须是同步函数。异步函数请看Action。
vuex系列:
手把手教你使用Vuex(三)
手把手教你使用Vuex(三)的更多相关文章
- 手把手教你使用Vuex(二)
在上一篇文章Vuex(一)中我们已经把Vuex需要用到的属性的单独页面引入到了store/index.js里面,所以我们接下来直接在这些js文件中写自己需要的代码就好. 1.Getter 了解:Get ...
- 手把手教你使用Vuex(一)
1.定义 vuex 是一个专门为vue.js应用程序开发的状态管理模式. 这个状态我们可以理解为在data中的属性,需要共享给其他组件使用的部分.也就是说,是我们需要共享的data,使用vuex进行统 ...
- 手把手教你使用Vuex(四)
3.Action Action类似于mutation,不同之处在于: Action提交的是mutation,而不是直接变更状态 Action可以包含任何异步操作 可以理解为将mutations里面处理 ...
- 手把手教从零开始在GitHub上使用Hexo搭建博客教程(三)-使用Travis自动部署Hexo(1)
前言 前面两篇文章介绍了在github上使用hexo搭建博客的基本环境和hexo相关参数设置等. 基于目前,博客基本上是可以完美运行了. 但是,有一点是不太好,就是源码同步问题,如果在不同的电脑上写文 ...
- 手把手教你写电商爬虫-第三课 实战尚妆网AJAX请求处理和内容提取
版权声明:本文为博主原创文章,未经博主允许不得转载. 系列教程: 手把手教你写电商爬虫-第一课 找个软柿子捏捏 手把手教你写电商爬虫-第二课 实战尚妆网分页商品采集爬虫 看完两篇,相信大家已经从开始的 ...
- 沉淀,再出发——手把手教你使用VirtualBox搭建含有三个虚拟节点的Hadoop集群
手把手教你使用VirtualBox搭建含有三个虚拟节点的Hadoop集群 一.准备,再出发 在项目启动之前,让我们看一下前面所做的工作.首先我们掌握了一些Linux的基本命令和重要的文件,其次我们学会 ...
- Android开发之手把手教你写ButterKnife框架(三)
欢迎转载,转载请标明出处: http://blog.csdn.net/johnny901114/article/details/52672188 本文出自:[余志强的博客] 一.概述 上一篇博客讲了, ...
- 手把手教你开发Chrome扩展三:关于本地存储数据
手把手教你开发chrome扩展一:开发Chrome Extenstion其实很简单 手把手教你开发Chrome扩展二:为html添加行为 手把手教你开发Chrome扩展三:关于本地存储数据 HTML5 ...
- 手把手教你搭饥荒专用服务器(三)—MOD及其他高级设置
友情链接: 手把手教你搭饥荒专用服务器(一)-服务器准备工作 手把手教你搭饥荒专用服务器(二)-环境配置及基本使用 手把手教你搭饥荒专用服务器(三)-MOD及其他高级设置 手把手教你搭饥荒专用服务器( ...
随机推荐
- ps 安装 ps 2017 下载 及教程(保姆式教程)
链接:https://pan.baidu.com/s/1GJHiwmxwRApFYhyNZBCQtQ 提取码:7r6u 以上是百度网盘的地址. 1.下载解压安装前先断网在安装点击set-up 软件,之 ...
- java 画 哆啦A梦
package Demo;import javax.imageio.ImageIO;import java.awt.*;import java.awt.image.BufferedImage;impo ...
- 扫描仪扫描文件处理-ABBYY生成小体积黑白二值化PDF
禁止所有预处理选项: PDF保存选项: 保存提示(选择"保存为仅图像PDF"):
- spring boot:shardingsphere多数据源,支持未分表的数据源(shardingjdbc 4.1.1)
一,为什么要给shardingsphere配置多数据源? 1,shardingjdbc默认接管了所有的数据源, 如果我们有多个非分表的库时,则最多只能设置一个为默认数据库, 其他的非分表数据库不能访问 ...
- centos8平台yum无法安装一些常用软件的解决,如:screen,iftop,nethogs
一,例如:安装screen时报错: [root@localhost liuhongdi]# yum install screen 上次元数据过期检查:17:39:58 前,执行于 2020年03月18 ...
- PHP SPL标准库-数据结构
SPL是用于解决典型问题的一组接口与类的集合. 双向链表 SplDoublyLinkedList SplStack SplQueue 双链表是一种重要的线性存储结构,对于双链表中的每个节点,不仅仅存储 ...
- Linux用户和组的配置文件
用户和组的主要配置文件 前两个是放用户账号相关的,后两个是放和组相关的 /etc/passwd:用户及其属性信息(名称.UID.主组ID等) #早期密码也放这里,后来发现不安全,谁都能看 /etc/s ...
- CF1430 D. String Deletion(div 2)
题目链接:http://codeforces.com/contest/1430/problem/D 题意:有一个长度为n(n<=2*10^5)的01字符串,每轮操作有两步: 第一步是删去字符串中 ...
- 浅谈1——用Eclipse调试JAVA程序
本篇博客主要介绍如何用Eclipse调试简单的JAVA程序. 1.如下图,一个简单的JAVA程序 2.设置断点. 方法:选中需设置断点的行代码,按快捷键Ctrl+Shift+B,设置断点: 断点设置 ...
- 《JavaScript高级程序设计》——第一章JavaScript简介
第一章主要讲了JavaScript的诞生和发展.刚刚接触JavaScript的我,似乎对这些内容并不感兴趣,快速看了一遍就开始去看第二章了. 看完第一章,收获也就是了解到JavaScript由ECMA ...