使用 vuex 修改 state 时,有两种方式:

  1. 可以直接使用 this.$store.state.变量 = xxx
  2. this.$store.dispatch(actionType, payload) 或者this.$store.commit(commitType, payload)

共同点:

  • 能够修改state里的变量,并且是响应式的(能触发视图更新)

不同点:

  • 若将 vue 创建 store 的时候传入 strict: true,开启严格模式,那么任何修改state的操作,只要不经过mutation的函数,vue就会报错。想详细了解报错原因,可以前往这里 。

使用 dispatch 和 commit 的区别在于,前者是异步操作,后者是同步操作,所以一般情况下,推荐直接使用commit,
即 this.$store.commit(commitType, payload),以防异步操作会带来的延迟问题。

使用commit提交到mutation修改state的优点:

  • vuex 能够记录每一次state的变化记录,保存状态快照,实现时间漫游/回滚之类的操作。

结论: 官方推荐最好设置严格模式,并且每次都要commit来修改state,而不能直接修改state,以便于调试等。

vuex直接修改state 与 用dispatch/commit来修改state的差异相关推荐

  1. 修改git历史提交的commit信息

    本文是基于idea的操作,亲测可用 前言: 很多公司都会自定义 Git - 使用强制策略,那么他的commit信息就会有固定的格式,一旦不是这个格式,就会出现push失败 但是push失败,很多也只在 ...

  2. 修改git已提交的commit中提交者的用户名和邮箱

    如下图中,将已经提交的commit中,用户名jincheng-demo,jincheng-demo01,以及邮箱jincheng@test.com, 修改为正确的用户名:jincheng,正确的邮箱: ...

  3. 通过 $ git commit --amend 修改 commit 的 message

    $ git commit --amend 代码场景 --amend 代码场景 在提交代码的时候,commit 的时候 -m 后的 msg 写错了 $ git commit --amend -m '新的 ...

  4. git commit --amend 修改最近一次提交

    修改上一次提交的代码 如果您使用的 Gerrit 管理的代码,不必 abandon 本次提交,不必 reset,直接修改出问题的文件, 修改好代码之后执行 git commit -a --amend ...

  5. 如果多个用户同时修改同一客户记录,而且先后提交修改,Oracle 怎样保证该客户记录...

    如果多个用户同时修改同一客户记录,而且先后提交修改,Oracle 怎样保证该客户记录   首先你要了解什么叫做 "事务 transcation " :一个事务包含一个或多个DML语 ...

  6. git 查看修改明细_git查看某个文件的修改历史

    有时候在比对代码时,看到某些改动,但不清楚这个改动的作者和原因,也不知道对应的BUG号,也就是说无从查到这些改动的具体原因了- [注]:某个文件的改动是有限次的,而且每次代码修改的提交都会有commi ...

  7. 如何修改gitLab远程服务器登录密码以及修改gitLab网站用户密码

    文章目录 一.修改gitLab远程服务器登录密码 二.修改gitLab网站用户密码 一.修改gitLab远程服务器登录密码 以usercloud为例子: 这里是修改登录服务器密码: 首先登录上自己的远 ...

  8. Linux shell 学习笔记(5)— 文件权限(添加、修改、删除用户及创建、修改群组)

    1. Linux的安全性 Linux 安全系统的核心是用户账户.每个能进入 Linux 系统的用户都会被分配唯一的用户账户.用户对系统中各种对象的访问权限取决于他们登录系统时用的账户. 用户权限是通过 ...

  9. 转载非原创:修改BB 的内容,回车后修改CC 的值

    原文 http://blog.csdn.net/iamah/article/details/8438981 修改BB 的内容,回车后修改CC 的值 步骤: 1. 注册类为对类CL_GUI_ALV_GR ...

最新文章

  1. 2021年大数据Flink(四十):​​​​​​​Flink模拟双十一实时大屏统计
  2. matlab 将矩阵A写入文件
  3. android OkHttp form 上传图片和参数
  4. oracle shutdown 默认,Oracle的shutdown命令
  5. 【Boost】boost库中thread多线程详解12——线程的分离与非分离
  6. 《看聊天记录都学不会Python到游戏实战?太菜了吧》(10)无底洞的循环
  7. Dubbo源码分析系列之-整体架构设计
  8. linux 查看防火墙对应的进程,Linux系统防火墙进程查看的实用方法
  9. 演说之禅:幻灯片的演说是多多益善吗?
  10. OkHttp3用法全解析
  11. JAVA微信小程序商城源码:带完整后台运行版
  12. ffmpeg wav 转 mp3 以及其他音频转换
  13. SpringBoot+Vue实现前后端分离的财务管理系统
  14. 基于微信小程序的校园外卖订餐个性化推荐系统
  15. php 中文转义问题
  16. PMP到底是啥,你竟然还不知道?
  17. 七种常见软件开发模型
  18. 统计学 一 集中趋势
  19. es倒排索引和mysql索引的_【漫画】ES原理 必知必会的倒排索引和分词
  20. 计算机网络XP系统电路,Windows XP操作系统与计算机网络基础

热门文章

  1. 理论应用实例水杯_PLC应用,3个PID控制实例讲解,想不会都难!
  2. c语言 static变量和函数
  3. 突然发现一个很好用Golang的json库
  4. Java中字符串中子串的查找共有四种方法(indexof())
  5. Dockerfile构建LNMP分离环境部署wordpress
  6. 一个经典编程面试题的“隐退”
  7. Linux目录树与文件系统
  8. 系统提示System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本解决办法...
  9. VIP客户服务系统设计(四)——按用户角色构思系统功能(上)
  10. php在线编辑器_8款功能强大的Java编辑器,建议收藏!「渡一教育」