账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    我这样理解并使用 vuex 对吗?如果不对,麻烦指点,谢谢.
    27
    0

    我是刚接触vue一个周,其中对 vuex 的理解有些模糊,下面是我在项目中用到的 vuex / moudles / com.js ,可以这样写吗?理解上有不对的地方吗?

    import * as types from '../type'
    
    
    /** Action
     *  当要改变vuex的state的时候必须要用commit来提交一个mutation
     *  Vuex 从功能上来讲就是一个前端的缓存系统,解决不同组件间的数据共享的问题
     * 
     *  action 为了改变状态state的值,不仅可以同步也可以异步改变 state
     *  mutations 也是 action 的一种,用法也同 action ,不过它只能同步改变 state
     * 
     *  commit 实质上 store 的一个实例,里面有相应的方法,可以操作、获取 state ,然后写在action里面
     * 
     *  computed 如果要对数据进行处理输出,要过滤就要用到它,是vuex的计算属性
     *  getters 如果很多组件都需要 computed 过滤后的数据,比如饼图,曲线图等,把这个共同的属性抽取出来就需要用到 getters, 可以说它是 store 的计算属性
     */
    
    
    /*APP 通用配置 state*/
    const state = {
        showSuccess: true,
        showFail: false,
        toastMsg: '操作成功',
        showToast: false
    }
    
    /*将 state 写入到 action*/
    const actions = {
        showToast({commit}, state){
            commit(types.COM_SHOE_TOAST, state)
        },
        showSuccess({commit}, state){
            commit(types.COM_SHOW_SUCCESS, state)
        },
        showFail({commit}, state){
            commit(types.COM_SHOW_FAIL, state)
        },
        toastMsg({commit},str){
            commit(types.COM_TOAST_MSG, str)
        }
    }
    
    /*将公共数据抽取出来*/
    const getters = {
        showToast: state => state.showToast
    }
    
    /*对数据改变 state*/
    const mutations = {
        [types.COM_SHOE_TOAST](state, status){
            state.COM_SHOE_TOAST = status
        },
    
        [types.COM_SHOW_SUCCESS](state, status){
            state.COM_SHOW_SUCCESS = status
        },
    
        [types.COM_SHOW_FAIL](state, status){
            state.COM_SHOW_FAIL = status
        },
    
        [types.COM_TOAST_MSG](state, str){
            state.COM_TOAST_MSG = str
        }
    }
    
    /*对外共享这些数据*/
    export default {
        state,
        actions,
        getters,
        mutations
    }

    在 store.js 中要怎么写呢? 上面是一个toast的组件,还没有实现。

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 灵魂枷锁 普通会员 1楼
      502 Bad Gateway

      502 Bad Gateway


      nginx
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部