浅谈vuex使用方法(vuex简单实用方法)

Vuex 是什么?

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。Vuex 也集成到 Vue 的官方调试工具 devtools extension,提供了诸如零配置的 time-travel 调试、状态快照导入导出等高级调试功能。

以上是官方文档对xuex的定义,对于vuex的官方文档讲的很详细,但是对于一个前端菜鸟来说,表示看不懂,看完过后很懵逼(比如小胖纸)。基础知识太薄弱,理解起来很费劲。但是有想用vuex做状态管理怎么办,只有想办法咯,慢慢磨出来的。

以下简述vuex的state,mutations,actions怎么配合使用,形成一个完整的流程,很简单的一个功能实现。

目录结构:

主要通过配合使用store里面的 action Index mutation-types mutation.js的使用。

 

isSelect 初始状态为 false ,点击确定isSelect = true , 点击取消 isSelect  = false ;

第一步: Index.js  

在state里面申明一个变量  is_select ,作为状态管理

 

import Vue from "vue";
import Vuex from "vuex";
import mutations from "./mutations";
import actions from "./action";
import getters from "./getters";

Vue.use(Vuex)
//所有的状态树
const state = {
    is_select: false
};

export default new Vuex.Store({
    state,
    getters,
    actions,
    mutations,
})

第二步: 在 mutation.js  书写状态管理的逻辑函数

export default {
    /**
     * 书写所有的状态管理逻辑函数
     * Mutations必须是同步函数
     * @constructor
     */
    CHECH_SELECT(state,res){
        //写业务逻辑
        state.is_select = res;
        console.log(res)
    }
}

 第三步: 在 mutation-types.js  把在 mutation.js中写的函数抛出

//配置vuex调用的Mutations逻辑
export const CHECH_SELECT = 'CHECH_SELECT'

 第四步: 在 action.js  从定义的Mutations逻辑函数中取需要用到的逻辑函数

import {CHECH_SELECT} from "./mutation-types.js"; //从定义的Mutations逻辑函数中取需要用到的逻辑函数
/**
 *Action 类似于 mutation,不同在于:
 *Action 提交的是 mutation,而不是直接变更状态。
 * Action 可以包含任意异步操作。
 */
export default {
    async check_select({commit}, is_select) {
        commit(CHECH_SELECT, is_select)
    }
}

通过commit提交mutation来改变state中的 is_select 值的变化

 第五步:在 xxx.vue中实现点击确定取消,来触发改变 is_select  的值 

 methods:{
            commits(){
                const _self = this;
                _self.$store.dispatch("check_select",true)
                        .then(function () {
                            _self.isSelect = _self.$store.state.is_select;
                        })
                
            },
            cancels(){
                const _self = this;
                _self.$store.dispatch("check_select",false)
                        .then(function () {
                            _self.isSelect = _self.$store.state.is_select;
                        })
            },
}

经过五个步骤,就可以完成一个炒鸡简单的通过vuex来进行的状态管理,以上仅仅是为了实现功能,想说出个所以然,但有理解太浅,只能实现功能,不清楚为什么。接下来在深入去了解,仔细品下官方文档。

posted @ 2017-09-08 17:24  奔走_在路上  阅读(6282)  评论(0编辑  收藏  举报