vuex实践之路——笔记本应用(三)
2024-08-26 21:12:46
Actions
Action 类似于 mutation,不同在于:
- Action 提交的是 mutation,而不是直接变更状态。
- Action 可以包含任意异步操作。
让我们来注册一个简单的 action,实践中,我们会经常会用到 ES2015 的 参数解构 来简化代码(特别是我们需要调用 commit
很多次的时候):
actions: {
increment ({ commit }) {
commit('increment')
}
}
看下我们项目中的actions:
怎么在组件中分发事件呢?
看下我们的Toolbar.vue代码
首先引入mapActions
辅助函数将组件的 methods 映射为 store.dispatch
,
映射 addNote() 为 this.$store.dispatch('addNote'),对应actions中的addNote。
使用actions的优点不只在于简化代码,更重要的在于我们可以在 action 内部执行异步操作。
mutation 有必须同步执行这个限制。Action 就不受约束:
actions: {
incrementAsync ({ commit }) {
setTimeout(() => {
commit('increment')
}, 1000)
}
}
这是mutation无法做到的。
至此我们的整个应用已经完成。
附上完整项目github地址
最新文章
- Intellij IDEA 导入 eclipese项目之后,中文注释乱码解决方案
- IbatisNet的介绍和使用
- SQL Server中建立外键的方法
- MFC的资源切换AFX_MANAGE_STATE(AfxGetStaticModuleState()
- RSA加密解密和读取公钥、私钥
- Eclipse、maven项目常见问题
- SpringMVC连接MongoDB操作数据库
- 前端JS面试题汇总 Part 3 (宿主对象与原生对象/函数调用方式/call与apply/bind/document.write)
- ionic 禁用 手势 滑动返回
- 手把手教你从头开始搭建友善之臂ARM-tiny4412开发环境(史上最详细!!)
- form表单post提交的数据格式
- svn下已add文件如何忽略
- Orchard Core 中数据库使用postgresql-10
- spring的multipartResolver和java后端获取的MultipartHttpServletRequest方法对比 (附:遇到的坑)
- Atcoder Grand Contest 010 C - Cleaning 树贪心(伪)
- 51Nod 1344 走格子(贪心
- Codeforces 735B - Urbanization
- CF97B Superset
- iOS 9应用开发教程之编辑界面与编写代码
- 自我介绍和Github初次使用心得
热门文章
- 使用 Azure PowerShell 监视和更新 Windows 虚拟机
- Oracle Database 12c Preinstall Steps for Oracle Linux Simplified
- PHP 传值操作和传地址操作
- [部署]VM11下CentOS7mini安装及配置
- Netty入门(二)时间服务器及客户端
- 【洛谷P3410】拍照题解(最大权闭合子图总结)
- Oracle Database(rdbms) 12.2 安装组件
- [POI2011]Meteors
- docker容器下tomcat 不向catalina.out输出日志解决以及支持中文字符集
- DataGuard之Apply Services(redo应用和SQL应用)