一位面试者提到直接调用vuex中mutations方法
简述是用this.$store.mutations.xxx(xx)方式调用,因从未见过此种调用方式,回来就搜索了一下,查询结果如下
首先前文:
获取 state 的方式有两种,分别是
this.$store.state.num
这种直接获取的方式,以及通过 getter 定义的方式获取this.$store.getter.num
。而修改 state 不能直接修改对象或者覆盖对象的属性,因为我们遵循的是单一状态树的管理原则,不允许通过
this.$store.state.num = 3
修改 state。
mutations:
定义的 mutations 对象将挂载到 Store 的 mutations 属性上。
mutations 的每个属性都是以方法的形式定义,默认接收一个参数,而这个参数实际上就是 Store 的 state 对象,只有在 mutations 的属性中直接通过
state.xxx = xxx
修改 state。
mutations 的方法也不是直接通过 this.$store.mutations.xxx(xx)
去调用的,而是通过主动触发的。
可以打印 this.$store
查看 Store 的属性,可以发现, mutations 是以 _mutations
的私有属性形式存在的,因此并不能直接调用(不能是指不允许)。
从上面的属性列表中可以发现 commit
属性,而这个属性是一个 function,用来触发 mutations 中定义的 mutation,所以可以通过commit方式触发mutations中定义的方法
另外tips:
1. commit方法穿参除默认参数state外另一个参数是payload,且payload只支持一个参数
2. mapMutations :
import { mapMutations } from 'vuex'export default {methods: {...mapMutations(['increment', // 将 `this.increment()` 映射为 `this.$store.commit('increment')`// `mapMutations` 也支持载荷:'incrementBy' // 将 `this.incrementBy(amount)` 映射为 `this.$store.commit('incrementBy', amount)` ])} }
一万个感谢让我更深入认知到mutations
转载于:https://www.cnblogs.com/yl179578605/p/10646826.html
一位面试者提到直接调用vuex中mutations方法相关推荐
- 一位面试官询问我:Java中的JVM内存溢出和内存泄露是什么?我这么回答成功拿到了offer
一位面试官询问我:Java中的JVM内存溢出和内存泄露是什么?我这么回答成功拿到了offer. 墨眉无锋墨家代码 2020-11-22 20:16:50 10525 收藏 56 分类专栏: Java ...
- 【手写 Vuex 源码】第五篇 - Vuex 中 Mutations 和 Actions 的实现
一,前言 上一篇,主要介绍了 Vuex 中 getters 的实现,主要涉及以下几个点: 将选项中的 getters 方法,保存到 store 实例中的 getters 对象中: 借助 Vue 原生 ...
- Vuex中mutations的用法
Vuex中mutations的用法 在 Vuex 中 store 数据改变的唯一方法就是提交 mutations.mutations里面装着一些改变数据方法的集合,这是Vuex 设计很重要的一点,就是 ...
- thinkphp模型中的获取器和修改器(根据字段名自动调用模型中的方法)
thinkphp模型中的获取器和修改器(根据字段名自动调用模型中的方法) 一.总结 记得看下面 1.获取器的作用是在获取数据的字段值后自动进行处理 2.修改器的作用是可以在数据赋值的时候自动进行转换处 ...
- kotlin调用类中的方法_一种轻松的方法来测试Kotlin中令人沮丧的静态方法调用
kotlin调用类中的方法 by Oleksii Fedorov 通过Oleksii Fedorov 一种轻松的方法来测试Kotlin中令人沮丧的静态方法调用 (A stress-free way t ...
- asp.net页面调用cs中的方法
其中GetArea 在cs文件中的方法, GetArea(string provincecode, string citycode, string areacode) 在页面中可以这样调用cs中的方法 ...
- 为什要使用BindService?为了调用服务中的方法
MainActivity类: package com.itheima74.whybindservice.service; import android.app.Service; import andr ...
- 在form2中调用form1中的方法并改变form1中控件值的另一种方法
在窗体编程中,经常碰到到要在form2中调用form1中的方法并改变form1中控件值,但是又不能用new form1这种方法,因为这是生成一个实例. 网上有些说法是用委托和事件,笔者尝试没有成功,可 ...
- 反射_通过反射调用类中指定方法、属性
一.调用指定方法 通过反射,调用类中的方法,通过Method类完成.步骤: 1.通过Class类的getMethod(String name,Class.......parameterTypes)方法 ...
最新文章
- LeetCode: 106. Construct Binary Tree from Inorder and Postorder Traversal
- 小心陷入MySQL索引的坑
- 【Linux部署】【elasticsearch-6.4.3 单机版】【不能以root用户运行es 及 max_map_count 问题解决】(含 安装包+分词插件 云盘资源)
- HTML怎么限制每行字数,JS实现每行固定字数,自动换行
- 呼伦贝尔学院计算机宿舍,2020年呼伦贝尔学院新生宿舍环境条件,大一新生男生女生宿舍内部图片【多图】...
- (50)FPGA面试技能提升篇(版本控制工具Clearcase、Git)
- 《C++标准库》笔记--STL 2
- 我们为什么需要SDN?---致新人
- Android中利用ActivityGroup制作首页框架
- 使用计算机制图的心得,学习cad制图心得体会
- 7.09—057—周二
- 安装C4D步骤 附加一大波C4D序列号
- VBE开源插件Rubberduck
- 区块链行业人才市场大盘点(附求职指南)
- PCIe系列专题之一:PCIe技术概述
- 帝国时代(1)--献给曾经的游戏
- 《Kotin 极简教程》第9章 轻量级线程:协程(2)
- Django+Vue实现增删改查操作
- [jni] [android] 用C++开发安卓程序
- PHP+在线电子小说网站的设计与实现 毕业设计-附源码260907
热门文章
- Linux蜂鸣器实验(使用上一节子系统思想,摈弃了自己配置寄存器的繁琐操作)
- SQLServer常用的日期和时间函数梳理
- 一文总结 CPU 基本知识
- 11 个 Linux 上最佳的图形化 Git 客户端
- 用于大型的科学计算的计算机,科学计算器广泛适用于大、中、小学生、教师、科研人员及其他各界...
- linux openssh升级8.1,Centos7利用rpm升级OpenSSH到openssh-8.1p1版本
- Oracle开发常用知识
- python并行运算库_最佳并行绘图Python库简介:“ HiPlot”
- 2012年12月第二个周末
- Python3+PyCharm+selenium3 环境搭建