手把手教你使用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及其他高级设置 手把手教你搭饥荒专用服务器( ...
随机推荐
- springmvc执行原理
大家是否遇到过被面试官问了这样一句话:"来聊聊springmvc执行原理".是的,springmvc的执行流程是面试的高频点,今天我就来浅谈它! 一.下面通过一个简单的spring ...
- chrome(谷歌)登录失败解决方案
相信有很多小伙伴和我一样,同步chrome的收藏夹,这样也便于随时可以查看自己收藏的网址.但是同步文件,必须先要登录chrome账号,登录chrome账号时,总是会报黄页,或者一直加载不出来.接下来, ...
- 【Targan+LCA】HDU 3686 Traffic Real Time Query
题目内容 洛谷链接 给出一个\(n\)个节点,\(m\)条边的无向图和两个节点\(s\)和\(t\),问这两个节点的路径中有几个点必须经过. 输入格式 第一行是\(n\)和\(m\). 接下来\(m\ ...
- spring boot:使用async异步线程池发送注册邮件(spring boot 2.3.1)
一,为什么要使用async异步线程池? 1,在生产环境中,有一些需要延时处理的业务场景: 例如:发送电子邮件, 给手机发短信验证码 大数据量的查询统计 远程抓取数据等 这些场景占用时间较长,而用户又没 ...
- linux 压缩命令 zip
1.zip命令 例如:zip -r mysql.zip mysql 该句命令的含义是:将mysql文件夹压缩成mysql.zip zip -r abcdef.zip abc def.txt 这句命令的 ...
- GDB常用调试命令(一)
GDB是UNIX及UNIX-like下的调试工具,通常gdb使用前置条件:编译时加入debug信息,这里指的是C++. gcc/g++调试选项 gcc/g++是在编译时加入-g,-g分4个等级: ...
- Disconnected from the target VM, address: '127.0.0.1:1135', transport: 'socket'-SpringBoot启动报错
一.问题由来 本地代码在一次打包后,再次启动项目时报了一个错误,详细的错误信息如下: 2020-10-23 15:10:26.724 [] [main] INFO o.s.c.a.Annotation ...
- win7下安装docker
为了支持老版本的windows系统,docker官方提供了docker toolbox,让用户可以在windows10以前版本的操作系统上来体验docker. 一,安装 下载msi安装文件,一路nex ...
- ECC ~ Edge-Conditioned Filter in CNN on Graphs
ECC的卷积操作和常规的二维图像卷积操作都是一种加权平均操作,不同之处在于ECC可以作用在任何图结构上,并且其权重由节点间的边权所决定. 考虑$G=(V,E)$, 其中$|V|=n$ 边 $E \in ...
- react-native-image-picker用法
1, 首先,安装下该插件. npm install react-native-image-picker@latest --save 2,自动安装(做了这一步 下面安装的平台设置大部分都自动添加好了) ...