- 项目根目录创建store文件夹,store创建index.js文件
- store里的index.js文件引入vue,vuex,导出vuex.store
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({})
store对象结构
2.1 :state
//全局属性变量
state:{
num:0,
price:10,
name:'苹果',
dataArray:[]
},
2.2:mutations
//全局同步方法 通过this.$store.commit('xxx')调用
mutations:{
add(state){
state.num++
console.log(state.num)
}
},
2.3:getters
//Vuex属性计算,在视图里当做变量使用
getters:{ //getters里面函数的执行要依赖一个可变的变量
count(state){
return state.price*state.num
}
},
2.4:actions
//全局异步方法 通过this.$store.dispatch('xxx')调用
actions:{
dataArray(context){ //context:上下文 里面包含了state mutations getters actions
setTimeout(function(){
context.state.dataArray = ['美短','英短','蓝猫','银渐层']
},2000)
}
}
3.main.js引入vuex并设入vue原型
import store from './store/index.js' //引入vuex
Vue.prototype.$store = store //将vuex设置入vue的原型
然后页面就可以通过this.$store来访问vuex属性方法