返回

Vuex常用知识点记录

前端

  1. Vuex简介

Vuex是一个专为Vue.js应用程序设计的状态管理 工具。它采用集中式存储 的方式,管理应用程序的所有共享状态,并提供统一的API来获取和修改这些状态。Vuex的主要特点包括:

  • 集中式存储: 将应用程序的所有共享状态存储在一个单一对象 中,使之易于管理和维护。
  • 统一的API: 提供一组统一的API来获取和修改状态,简化了组件之间的数据通信。
  • 模块化: 支持模块化开发,可以将应用程序的状态拆分成多个模块,以便于管理和维护。
  • 时间旅行: 支持时间旅行 功能,可以回溯到应用程序的任意一个状态,方便调试和故障排除。

2. Vuex基本概念

在使用Vuex之前,我们首先需要了解几个基本概念:

  • 状态(State): 应用程序中共享的数据,由一个单一对象 存储。
  • Getter: 从状态中获取数据的函数,可以对状态进行一些处理或计算。
  • Mutation: 修改状态的函数,是同步 的。
  • Action: 触发异步 操作的函数,可以对状态进行修改,但必须通过Mutation来修改。
  • Vuex Module: Vuex中的模块化开发单元,可以将应用程序的状态拆分成多个模块,以便于管理和维护。
  • Namespaced Module: 带命名空间的Vuex模块,可以防止不同模块之间命名冲突。
  • MapState: 将状态映射到组件计算属性的函数。
  • MapGetters: 将Getter映射到组件计算属性的函数。
  • MapActions: 将Action映射到组件方法的函数。
  • MapMutations: 将Mutation映射到组件方法的函数。
  • Commit: 提交Mutation的函数。
  • Dispatch: 触发Action的函数。
  • Vuex Store: Vuex实例,管理应用程序的状态和行为。
  • Mutation Payload: Mutation的参数,用于传递要修改的数据。
  • Action Payload: Action的参数,用于传递要触发Action的数据。
  • Store Getter: 从Store中获取数据的函数。
  • Store Setter: 修改Store中数据的函数。
  • Store Commit: 提交Mutation的函数。
  • Store Dispatch: 触发Action的函数。

3. Vuex使用示例

接下来,我们通过一个示例来演示如何使用Vuex。

首先,在main.js文件中引入Vuex:

import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
  // ...
})

然后,在store.js文件中定义Vuex的Store:

import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    count: 0
  },
  getters: {
    doubleCount: state => state.count * 2
  },
  mutations: {
    increment (state) {
      state.count++
    }
  },
  actions: {
    incrementAsync ({ commit }) {
      setTimeout(() => {
        commit('increment')
      }, 1000)
    }
  }
})

最后,在组件中使用Vuex:

<template>
  <div>
    <p>Count: {{ count }}</p>
    <button @click="increment">Increment</button>
  </div>
</template>

<script>
import { mapState, mapActions } from 'vuex'

export default {
  computed: {
    ...mapState([
      'count'
    ])
  },
  methods: {
    ...mapActions([
      'increment'
    ])
  }
}
</script>

4. 总结

本文介绍了Vuex的一些常用知识点,包括Getter、Mutation、Action、Vuex Module、Namespaced Module、MapState、MapGetters、MapActions、MapMutations、Commit、Dispatch、Vuex Store、Mutation Payload、Action Payload、Store Getter、Store Setter、Store Commit、Store Dispatch等。通过这些知识点,我们可以更好地理解和使用Vuex,从而构建出更复杂和健壮的Vue.js应用程序。