vuex是集中式状态数据管理工具,它里面的不论是mutations定义的初始化数据或是action接收的异步数据都可以映射到组件当中,方便了组件间的数据共享,组件间的数据不再像父传子,子传父这样单一。
配置vuex需要引入vue,下载vuex并导入。使用vue.use来使用vuex。创建vuex存储对象,里面包含state、mutaitions、actions、getters,modules。
1. state可看作一个容器,它里面的数据是要被mutations初始化的,将来要渲染到页面上的也是他里面的数据,值得注意的是如果我们启用了modules模块化就不能正常那样通过辅助方法拿到某个数组了。
2. mutations方法是对数据的增加删除和修改,他里面的方法第一个参数就是state,第二个参数是需要的index、id,或者name(我们要修改所需要的额外参数)。
3. actions可操作异步数据,其实就是处理接口实现在数据库的增删改。mutations操作的数据只能实现页面效果,页面刷新之后,删除或修改的数据是会回来的,因为他没有在数据库发生改变,只是实现了当前页面的刷新。
其次,如何在actions里触发mutations方法。在组件当中我们以this.$store.commit()触发mutations里的方法,在actions当中,他的方法有一个系统自动注入的config,这个config就有commit,那么我们在actions当中可以使用config.commit触发mutations里的方法来实现页面刷新。
actions操作数据库内的数据通过接口即可完成,值得注意的是需要传递一些需要的参数,而后我们调用commit触发mutations实现页面刷新。
补充一点,不用每次使用config.commit调用mutations,在actions的方法中是可以 BrandUpdate({commit},其他参数){} ,直接解构取得的。
4. getters类似于vue中的计算属性。
5.modules是vuex模块化工具,目的是为了是主包更简洁,更加细化的文件方便后期维护。
后面补充
二 在组件中使用vuex可以直接在created中this.$store.commit() 、this.$store.dispatch(),也可引入vuex辅助方法,state和getters在computed中调用?而后当作组件自己的计算属性使用。mutations和actions在methods中调用,而后当作自己的方法使用。一般这四种方法都使用...mapState['名字'],mapMutations['方法名']解构的方式。
未完待续...