vuex store.commit 和 store.dispatch 的区别及用法
【摘要】 在项目开发过程中,需要将element-ui中的官方样式进行略微变动,但是在找到原来的代码进行更改之后发现样式并未生效,甚至代码都未进行自动编译,这就很奇怪了,从网上搜索发现原来是自己修改的源码是element-ui编译前的,如果自己需要进行样式修改的话,就需要重新编译一遍。具体做法是:重新下载element源码;改掉你想要改的效果,执行命令 npm run build;将改掉里面的lib替...
在项目开发过程中,需要将element-ui中的官方样式进行略微变动,但是在找到原来的代码进行更改之后发现样式并未生效,甚至代码都未进行自动编译,这就很奇怪了,从网上搜索发现原来是自己修改的源码是element-ui编译前的,如果自己需要进行样式修改的话,就需要重新编译一遍。具体做法是:
- 重新下载element源码;
- 改掉你想要改的效果,执行命令
npm run build
; - 将改掉里面的lib替换到node_modules中element下的lib包。
代码示例:
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);
两者都可以载荷形式或者对象风格的方式进行提交。
扩展阅读
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)