vuex文档:https://vuex.vuejs.org/zh-cn/vue
vuex安装:cnpm install vuex --savevuex
简单使用:npm
1.新建 store/index.js异步
import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex); const store = new Vuex.Store({ state:{ count:0 }, mutations: { change_count (state) { // 变动状态 state.count++ } }, }) export default store
1.获取属性(写在computed里)this
computed:{ count(){ return this.$store.state.count } }
或spa
import {mapState} from 'vuex'
computed:mapState([ 'count' //参数和state里面的参数同样 ])
或文档
import {mapState} from 'vuex'
computed:mapState({ count:state=>state.count })
状态改变(Mutations):只作状态变动it
change_count(){ this.$store.commit("change_count") },
或io
import { mapMutations } from 'vuex'
...mapMutations({ change_count:"change_count" //本地触发的方法:映射的方法 })
或:function
import { mapMutations } from 'vuex'
...mapMutations([ 'change_count' ])
action方法:能够写逻辑代码,异步代码
在store/index.js
actions:{ change_count({commit,state},context){ //异步的耗时操做 setTimeout( function () { alert(state.count) commit("change_count") },100)} }
调用
change_count(){ this.$store.dispatch('change_count'); },