vuex全局状态组件

   整理了一下之前看老师视频关于vuex的理解

注:想要改变全局状态的值,只能通过muctions中的方法改变,其中一个参数为必要值,即为state,因为所有的全局状态值都时通过其挂载到vue的实例中
//直接使用方法改变全局数据 在muctions中定义一个方法,通过想要在改变数据的组件的methods方法中直接调用this.$ store.commit('改变数据的函数名','需要改变的数据') 
 
//使用dispatch的方法改变全局状态详解 在muctions中定义一个想要以异步方式触发的改变数据的方法,通过在想要改变的组件的methods方法中以dispatch的方式新声明一个中介函数并且传入更改的数据,然后返回actions方法中调用该中介函数(也有两个参数,第一个为vuex里面的四个方法,所以需要将commit结构出来,第二个参数可以写为params,代表的就是dispatch中的更改数据),在该中介函数中在用commit犯法调用之前声明的改变数据的方法(调用commit方法需要将其解构出来)
 
//辅助函数
//通过' 命令将四个辅助函数引入,然后在vue的计算属性computed中输入 (mapState中可以放数组也可以放对象,放对象就相当于改名 在插值中键入hehe);
 
//在vue的methods使用 以及
其中使用中介函数的调用的actions方法为 (changeNameAction时中介函数)
//总结:state中放全局状态值也可称之为变量,getters中放计算的值,相当于vue中的computed计算属性。muctions中放更改state中定义的全局状态值的方法,可以直接在组件中通过this.$store.commit()来改变。actions中放通过dispatch中介函数需要更改函数名,然后在中介函数名中将commit方法结构出来,在commit中执行改变的方法。
辅助函数则是也有四个相对应的四个,其中mapState和mapGetters放在vue的计算属性computed中,另外两个放在methods中,如果是muctions,直接在methods中this.函数名(),如果是actions,在methods中this.中介函数名()
 
//modules 模块化
格式为modules:{模块名:{四个方法}},可以同时加多个模块名,namespaced:true,开启命名空间,(在模块内添加这个可以直接写...mapstate,不用再引入)防止方法参杂在一起
//...mapMutations和...mapActions是放在组件的methods中映射的,...mapActions需要中介函数,本质是执行数据变化的方法
//...mapState和...mapGetters是放在computed计算属性中映射的,本质是会变化的
//映射格式为对象时,需要改名,除了state需要箭头函数外,
//其他的直接写就行了 注:这是使用了模块话开发的,所以在方法前面加了模块名,不加无法访问
 

猜你喜欢

转载自www.cnblogs.com/sanjinlizi/p/12445532.html
今日推荐