面试题:Vuex 的 store 有几个属性值?它们的作用分别是什么?

Vuex 的 store 是 Vuex 状态管理的核心,它有以下几个主要属性值:

  1. state:
    • 作用: 用于存储应用的状态数据,类似于组件中的 data
    • 特点: 状态是响应式的,当状态发生变化时,依赖该状态的组件会自动更新。
  2. getters:
    • 作用: 用于从 state 中派生出一些状态,类似于组件中的 computed 属性。
    • 特点: 可以对 state 进行一些计算或过滤操作,返回处理后的结果。
  3. mutations:
    • 作用: 用于修改 state 中的状态,是唯一可以修改 state 的方式。
    • 特点: 必须是同步函数,每个 mutation 都有一个字符串类型的事件类型(type)和一个回调函数(handler)。
  4. actions:
    • 作用: 用于处理异步操作或复杂的业务逻辑,提交 mutation 来修改 state
    • 特点: 可以包含任意异步操作,通过 commit 方法来触发 mutation
  5. modules:
    • 作用: 用于将 store 分割成模块,每个模块拥有自己的 stategettersmutationsactions
    • 特点: 适用于大型应用,可以将状态管理分割成多个模块,便于维护和管理。

示例代码

const store = new Vuex.Store({
  state: {
    count: 0
  },
  getters: {
    doubleCount: state => state.count * 2
  },
  mutations: {
    increment(state) {
      state.count++;
    }
  },
  actions: {
    incrementAsync({ commit }) {
      setTimeout(() => {
        commit('increment');
      }, 1000);
    }
  },
  modules: {
    user: {
      state: { name: 'John' },
      mutations: {
        updateName(state, name) {
          state.name = name;
        }
      }
    }
  }
});

总结

  • state: 存储状态数据。
  • getters: 派生状态数据。
  • mutations: 同步修改状态。
  • actions: 异步操作或复杂逻辑,提交 mutation
  • modules: 模块化管理状态。
THE END
点赞12 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容