store.js 957 Bytes
import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

const store = new Vuex.Store({
    state: {
        count: 0,
        size: 10,
        isLogin: false,
        todos: [{
            id: 1,
            text: '...',
            done: true
        }, {
            id: 2,
            text: '...',
            done: false
        }],
        obj: {
          size: 1
        }
    },
    getters: {
        doneTodos: state => {
            return state.todos.filter(todo => todo.done)
        },
        doneTodosCount: (state, getters) => {
          return getters.doneTodos.length
        }
    },
    mutations: {
        // increment (state, payload) {
        //   state.count += payload.amount
        // },
        increment: state => state.count++,
        decrement: state => state.count--,
        login: state => state.isLogin = true,
        addObj: state => state.obj = { ...state.obj, newProp: 123 }
    }
})

export default store