vuex笔记

来源:互联网 发布:机器码破解软件下载 编辑:程序博客网 时间:2024/05/17 21:57
vue本身是组件化开发应用的,但是组件化开发自然会遇到一个问题,组件间有些共享的变量/数据(即state),组件要怎样简练快捷地响应state的更新。vuex本身的意义就是解决这个问题。vuex的方案是,在vue中构建一个用于存储state、定义操作state方法的仓库(即store)。通过在多个(不一定是全部)组件中引用需要的state、调用“操作state的方法”来实现对给共享变量的处理。且由于各个组件对state是引用的,单个组件改变了某个state后,其他组件可以实时的响应变化。
1.npm 安装vuex后--import'Vuex'--Vue.use('vuex')--根实例所在作用域中创建一个store实例--newVuex.Store({options})--将store放入根实例的参数对象中,部署完毕。
2.store实例有4个常用属性:
state存放共享状态/数据、
getters定义基于某种逻辑获取state的方法(也就是state的计算属性,传参state和payload对象)、
mutations定义操作/变更state的同步方法(传参state)、
actions定义异步执行mutations的方法,传的参数是context,context拥有store的相同属性和方法。
3.上面4个属性都是对象形式。
4.mapState、mapGetters、mapMutations、mapActions用来将store的4个属性中的state和方法映射到组件中,使用对象扩展运算符...obj将对象的名值对扩充到外部对象中。
5.vuex中的modules这个概念用来将一个大的store分割成多个modules,每个module就是一个小的store。
6.vuex的module、action、mutations支持热重载,意思是,当这些部分的代码在服务器端发生更新时,可以实时(经由http程序)加载更新后的部分并替换。
暂时写这么多,其实,vuex这部分,主要针对相对复杂的应用,如果SPA相对不复杂,直接用个空的vue实例就好了,完全不需要用到vuex。