这里全局状态管理器选择了 Pinia,之所以没有选择 Vuex,对于我来说最主要的原因有两点:
- Vue3 官方文档中,已经将 Pinia 放入官方推荐的核心库位置中了。
- 对 Composition-API 具有更好的支持。
接下来看一段官方的说明:
Pinia 最初是为了探索 Vuex 的下一次迭代会是什么样子,结合了 Vuex 5 核心团队讨论中的许多想法。最终,我们意识到 Pinia 已经实现了我们在 Vuex 5 中想要的大部分内容,并决定实现它 取而代之的是新的建议。
与 Vuex 相比,Pinia 提供了一个更简单的 API,具有更少的规范,提供了 Composition-API 风格的 API,最重要的是,在与 TypeScript 一起使用时具有可靠的类型推断支持。
有关全局状态管理的功能都在以下的目录中。
.
├── src # 主目录
│ ├── main.js # 主入口
│ ├── store # store 配置
│ │ ├── modules # store 模块
│ │ └── index.js
│ └── views # 页面
我们在开发中需要将不同功能所对应的状态,拆分到不同的 modules,好处在 route moduels 中已经描述过了。