vuex store.commit 和 store.dispatch 的区别及用法

举报
SHQ1874009 发表于 2023/01/26 14:21:47 2023/01/26
【摘要】 代码示例:this.$store.commit('loginStatus', 1);this.$store.dispatch('isLogin', true);规范使用方式:// 以载荷形式store.commit('increment',{ amount: 10 //这是额外的参数})// 或者使用对象风格的提交方式store.commit({ type: 'increment',...

代码示例:

this.$store.commit('loginStatus', 1);

this.$store.dispatch('isLogin', true);

规范使用方式:

// 以载荷形式
store.commit('increment'{
  amount: 10   //这是额外的参数
})

// 或者使用对象风格的提交方式
store.commit({
  type: 'increment',
  amount: 10   //这是额外的参数
})

主要区别:

  • dispatch:含有异步操作,数据提交至 actions ,可用于向后台提交数据;

写法示例: this.$store.dispatch('isLogin', true);

  • commit:同步操作,数据提交至 mutations ,可用于登录成功后读取用户信息写到缓存里

写法示例: this.$store.commit('loginStatus', 1);

两者都可以载荷形式或者对象风格的方式进行提交。

扩展阅读

绝对路径:是从盘符开始的路径,形如

C:\windows\system32\cmd.exe

所谓的绝对路径就是完整的路径。
相对路径:是从当前路径开始的路径,假如当前路径为C:\windows
要描述上述路径,只需输入

system32\cmd.exe

实际上,严格的相对路径写法应为

.\system32\cmd.exe

其中,.表示当前路径,在通道情况下可以省略,只有在特殊的情况下不能省略。
假如当前路径为c:\program files
要调用上述命令,则需要输入

..\windows\system32\cmd.exe

其中,…为父目录。
当前路径如果为c:\program files\common files
则需要输入

..\..\windows\system32\cmd.exe

另外,还有一种不包含盘符的特殊绝对路径,形如

\windows\system32\cmd.exe

无论当前路径是什么,会自动地从当前盘的根目录开始查找指定的程序。

在项目开发过程中,需要将element-ui中的官方样式进行略微变动,但是在找到原来的代码进行更改之后发现样式并未生效,甚至代码都未进行自动编译,这就很奇怪了,从网上搜索发现原来是自己修改的源码是element-ui编译前的,如果自己需要进行样式修改的话,就需要重新编译一遍。具体做法是:

  1. 重新下载element源码;
  2. 改掉你想要改的效果,执行命令 npm run build;
  3. 将改掉里面的lib替换到node_modules中element下的lib包。
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。