Pinia与Vuex的区别

212 阅读2分钟

Pinia与Vuex的区别

首先这是本人的个人想法,我是认为pinia就是Vuex的升级版本。而且pinia团队起初就是在Vuex4.x的基础上研究下一个迭代(Vuex5)事实也证明了这里面的好多内容也符合Vuex5团队中的许多想法。

设计理念

  • Vuex是为Vue2设计的
  • Pinia是为Vue3专门设计开发的,也是一个新型的状态管理库,它提供了一个更加简单的API,有更少的规范,提供了Composition-API风格的API,最重要的是可以与TS一起使用。

类型安全

Pinia在类型安全方面表现更为安全。因为它支持TS,并且可以完全支持类型推断。通过定义状态和操作的类型,可以提供更好的开发体验,能够在编译时捕获错误并提供代码补全和类型检查。

Pinia API 与 Vuex 3、Vuex4的区别:

  • mutations不存在了
  • 不需要创建自定义包装器来支持TypeScript了,所有都是类型化的。
  • 不需要注入、导入函数、调用函数、享受自动完成功能
  • 不需要动态添加Store,默认就是动态的
  • 不再有module的嵌套结构, 您仍然可以通过在另一个 Store 中导入和 使用 来隐式嵌套 Store,但 Pinia 通过设计提供平面结构,同时仍然支持 Store 之间的交叉组合方式。 您甚至可以拥有 Store 的循环依赖关系
  • 没有命名空间模块。
  • 详情查阅 pinia.web3doc.top/cookbook/mi…

目前来说 Vuex 仍然是一个非常流行和成熟的状态管理库,在 Vue 2 项目中使用 Vuex 是一个很好的选择。而对于使用 Vue 3 的项目,尤其是希望使用 Composition API 和享受类型安全、灵活性和性能优势的开发者来说,Pinia 可能是更好的选择。无论选择哪个库,都能够提供可靠的状态管理能力,具体取决于项目需求和开发者个人偏好。