VUEX及VUE项目结构粗解

VUEX核心

store
    一般使用方法
    export default{
        const store = new Vuex.Store({
            state: {
                },
            actions: {
                },
            mutations: {
                },
            getters: {
                },  
            modules: {
                }
        })
    }

1.state 定义了应用状态的数据结构,同样可以在这里设置默认的初始状态。

        定义:
            state: {
              projects: [],
              userProfile: {}
            }
        使用:
            computed: {
                  projects () {
                    return this.$store.state.projects
                  }
                }
            可以通过mapState函数简化代码

2.actions 即是定义提交触发更改信息的描述,常见的例子有从服务端获取数据,在数据获取完成后会调用store.commit()来调用更改 Store 中的状态。

        可以在组件中使用dispatch来发出 Actions。
            定义:
                如
                    actions: {
                        LOAD_PROJECT_LIST: function ({ commit }) {
                          axios.get('/secured/projects').then((response) => {
                            commit('SET_PROJECT_LIST', { list: response.data })
                          }, (err) => {
                            console.log(err)
                          })
                        }
                    }


            使用:
                如
                    this.$store.dispatch('LOAD_PROJECT_LIST', {})

3.mutations 调用 mutations 是唯一允许更新应用状态的地方。

            定义:
                mutations: {
                    SET_PROJECT_LIST: (state, { list }) => {
                      state.projects = list
                    }
                  }
            使用:一般在action中使用commit('SET_PROJECT_LIST', { list: response.data })

4.getters Getters 允许组件从 Store 中获取数据

            定义:
                getters: {
                     completedProjects: state => {
                      return state.projects.filter(project => project.completed).length
                     }
                }
                可以使用mapGetters简化代码
            注: 在项目中一般很少在store中定义getters,而是在使用store的地方定义getters,并且可以通过mapGetters。

5.modules 对象允许将单一的 Store 拆分为多个 Store 的同时保存在单一的状态树中。
随着应用复杂度的增加,这种拆分能够更好地组织代码

VUE项目结构

assets          静态资源目录
components      公共组件
router          路由
service         对api请求的统一管理
store           状态统一管理
view            组件

数据流

这里写图片描述

这里写图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值