什么是vuex?
Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式,它由五部分组成:
分别是:state,actions,mutations,getters,modules
vuex的五大核心
state:定义数据
mutations:唯一可以修改state数据的场所,进行一些简单的操作
getters:类似vue组建中的计算属性,对state数据进行计算(会被缓存)
actionds:可以包含一些异步的操作,调用mutations中的方法
modules:模块化管理(仓库),每个模块拥有自己的state,mutations,actions,getters
简易使用方法
mutations
在vuex中定义mutations中定义方法来改变state中的数据,在vue中通过this.$store.commit('自定义的方法名称',要传递的参数)
actions
正确的操作流程是:首先我们在mutations中定义方法,在actions中也定义方法,通过actions调用mutations中的方法来实现改变vuex中state中的数据,不管任何的操作来改变state中的数据,都要调用mutations中定义的方法来改变。在vue中通过this.$store.dispatch('在actions中定义的方法名',传递的参数)
如何在一个项目中使用两种不同的资地址?
在vuex页面import引入axios,在actions中直接axios(‘接口’)实现一个异步请求的操作,这与自己配置的基地址不冲突,实现一个项目请求多种不同的接口。
getters
state就是用来存放数据,若是对数据进行处理输出,比如数据要过滤,一般我们可以写到computed中。但是如果很多组件都使用这个过滤后的数据,比如饼状图组件和曲线图组件,我们是否可以把这个数据抽提出来共享?这就是getters存在的意义。我们可以认为,【getters】是store的计算属性。