扫一扫分享
Pinia是一个vue的状态管理方案,是vuex团队成员开发,实现了很多vuex5的提案,更加地轻量化且有devtools的支持
vuex4一直被人诟病对于typescript的支持不良好,vuex5也迟迟未来,所以有了pinia的出现。相较于vuex:
pinia无需创建复杂的包装器来支持typescript,对于typescript类型判断是天然支持的,享受ide带来的自动补全,减少开发的心智负担,减少vue开发过程中的面向字符串编程
减去了mutations的概念,只保留state,getters和anctions三个概念,减少代码冗余
无需手动添加store,创建的store会在使用时自动添加
没有模块module的概念,不用面对一个store下嵌套着许多模块,使用单文件store(有点类似redux/toolkit的一个reducer),可以直接导入其他store使用
Pinia文档有这么一段话:
Pinia 试图尽可能接近 Vuex 的理念。它旨在测试 Vuex 下一次迭代的提案,并且取得了成功,因为我们目前有一个针对 Vuex 5 的开放 RFC,其 api 与 Pinia 使用的 API 非常相似。请注意,我(Eduardo),Pania 的作者,是 Vue.js 核心团队的一员,并积极参与了 Router 和 Vuex 等 API 的设计。我个人对这个项目的意图是重新设计使用全局 Store 的体验,同时保持 Vue 平易近人的哲学。我让 Pania 的 API 与 Vuex 一样接近,因为它不断向前发展,以便人们可以轻松地迁移到 Vuex 或甚至在未来融合两个项目(在 Vuex 下)。
手机预览