Vuex——状态管理

前言:项目中有使用Vuex,通过官网进行学习,现进行总结。

Vuex--状态管理模式

状态管理模式包含以下几个部分:

  • state: 驱动应用的数据源
  • view: 以声明方式将state映射到视图
  • actions: 响应在view上的用户输入导致的状态变化

简单的“单向数据流”图示:


flow.png

当遇到多个组件共享状态时,单向数据流的简洁性很容易被破坏:

  • 多个视图依赖于同一状态
  • 来自不同视图的行为需要变更同一状态
    这时,我们就需要全局单例模式管理
    如图所示:


    vuex.png

Vuex和单纯的全局对象有以下两点不同:

1.Vuex的状态存储是响应式的。当Vue组件从store(仓库)中读取状态的时候,若store中的状态发生变化,那么响应的组件也会相应的得到高效更新。
2.不能直接改变store中的状态。改变store中的状态的唯一途径就是显示地提交(commit)mutation。这样使得我们可以方便地跟踪每一个状态的变化,从而让我们能够实现一些工具帮助我们更好地了解我们的应用。


const store = new Vuex.Store({
  state: {
    count: 0
  },
  mutations: {
    increment (state) {
      state.count++
    }
  }
})

可以通过store.state来获取状态对象,以及通过store.commit方法触发状态变更:

 store.commit('increment')
 console.log(store.state.count)

由于store中的状态时响应式的,在组件中调用store中的状态简单到仅需要在计算属性中返回即可。触发变化也仅仅是在组件的methods中提交mutation。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容