前端Vue: Vuex

0 阅读1分钟

Vuex 是 Vue.js 的官方状态管理库,用于在 Vue 应用中实现集中式的、可预测的状态管理。它主要解决在大型单页应用(SPA)中,多个组件共享同一状态时可能出现的状态传递复杂、难以调试和维护的问题。

核心概念:

  1. State:单一状态树,即应用的“唯一数据源”,所有组件共享的数据都存储在这里。
  2. Mutations同步修改 state 的方法,通过 commit触发。必须同步执行,确保状态变化的可追踪性。
  3. Actions:处理异步操作(如 API 请求),通过 dispatch触发。Action 内部可以调用多个 mutation。
  4. Getters:类似于计算属性,用于从 state 中派生出一些状态(例如过滤、计算)。
  5. Modules:将 store 分割成模块,每个模块拥有自己的 state、mutations、actions、getters,便于管理大型应用。

image.png

核心流程:

组件 → dispatch​ Action → Action 可进行异步操作 → commit​ Mutation → Mutation 同步修改​ State → State 变化触发组件更新。

适用场景:

  • 多个视图依赖同一状态(如用户登录信息)
  • 来自不同视图的行为需要变更同一状态(如全局购物车)

随着 Vue 3 的推出,官方也提供了 Pinia​ 作为新一代状态管理库(API 更简洁、支持组合式 API、TypeScript 友好)。但对于 Vue 2 项目或需要严格状态追踪的场景,Vuex 仍是可靠选择。