Vuex vs Pinia

状态管理该用哪个?

Vuex 有什么问题?

  • 冗余:Mutation(同步)、Action(异步)分得很细,写起来繁琐
  • TS 支持差:类型推导麻烦
  • 模块化痛点:字符串路径易错,难以 Tree-shaking

Pinia 强在哪?

为 Composition API 设计:

  1. 极简 API:只有 State、Getters、Actions。去掉了 Mutations。Action 支持同步/异步
  2. TS 支持好:完全 TS 重写,类型推导丝滑
  3. 独立 Store:每个 Store 是独立模块,用到哪个加载哪个
  4. 体积小:小于 1KB
  5. SSR 支持好:原生支持,解决 Vuex 的序列化问题

怎么选?

  • 新项目:直接用 Pinia
  • 老项目:Vuex 4 还能用,新模块可以用 Pinia(两者可以共存)

总结

VuexPinia
API繁琐极简
Mutations
TS
Store集中独立
体积
推荐老项目新项目