政府管理已经成为一个热门话题在快速变化的前端网络开发的世界已经有几年了,有很好的理由,保持一致的状态往往比人们想象的更困难,但绝对至关重要。
React 有 Redux 和 MobX, Angular 有 ngrx 和 Redux 端口,但 Vue 有什么? 好吧,这里是 Vue 可用的各种状态管理库的下图。
( )( )( )( )
谈论 Vue 状态管理,而不提到 Vuex将是绝对的犯罪行为。Vuex 是 Vue 的官方状态管理插件。
周围
- 活跃开发: Yes
- 普及: ~5000星
- 主要开发者: Evan You (Vue 领导开发者)
- 文档质量: Thorough
- 不可变性: ** 开发: 没有**, ** 生产: 警告**
- 单状态对象: Yes
- 模块化状态树: Yes
- 非同步变异:Yes** (通过行动)
- 存储: [https://github.com/vue/js/vx](LINK0
普罗
- 相对简单的 API
- 清晰的文档和示例
- 支持非同步操作
- 坚实的开发前景,可能仍然活跃
孔子
- 要求您为您打算访问的每个状态片段定义输入器
- 需要您组件中的奇怪的计算属性和方法注入模式,这些模式可能看起来像是代码的味道
- 偶尔看起来像是魔法,它并不总是清楚定义如何使用
结论(博士)
如果你正在开发一个应用程序,许多人会依赖,去与Vuex。
杂志
Redux 开发,永远不要害怕! 您可以直接将 Vue 与 Redux: Revue 集成。
<$>[警告]不幸的是,Revue项目不再维护。
周围
- 活跃开发: No
- 普及性: ~400星
- 主要开发者: EGOIST
- 文档质量: 基本(使用减少文档)
- 不可变性: No,需要额外的库。
- 单一状态对象: Yes
- 模块化状态树: Yes(通过减少器组合)
- 非同步变异: No(使用多个行动和状态变量)
- 存储: [https://gubith.com/revue/revue
普罗
- Redux 周围的轻量级包装,允许您使用 Redux 就像您习惯的那样。
孔子
- Redux 如果你不熟悉它,它可能是一个痛苦的工作
- 比Vuex或Vue-stash更有趣
- 没有长期开发保证
结论(博士)
如果你来自React背景,你爱上了Redux,考虑Revue. 如果你刚刚开始使用Vue,你可能想尝试Vue-stash,而不是下面。
观看 斯塔什
vue-stash 是您可以获得的状态管理插件的基本内容。 它实际上只是在全球范围内将反应性对象注入到您的组件树中的一种方式。
周围
- 活跃开发: Yes
- 普及: ~100星
- 主要开发者: Cody Mercer
- 文档质量: Basic
- 不可变性: No
- 单一状态对象: Yes
- 模块化状态树: N/A (国家树是一个平凡的JS对象)
- 非同步变异: No (直接属性变异)
- 存储: [https://github.com/lcklmercerue/vstash
普罗
它真的只是一个你在全球范围内注入到你的组件的对象。
孔子
- 不是不变的
- 没有动作 / 突变抽象. 您可以像正常情况一样访问和修改属性
- 没有长期开发保证
结论(博士)
如果你想要绝对最低的API表面,以及最少的工作量来设置它,而没有很多长期的要求,Viste-stash是适合你的。
视线冻结
vue-freeze 也有一个非常简单的 API,只提供状态和操作. 所有操作都是无同步的,所有状态属性都是不可变的。
周围
- 积极开发: No 非常慢的更新周期
- 普及性: ~100星
- 主要开发者: Naufal Rabbani
- 文档质量: Poor
- 不可变性: Yes(由 Freezer)
- 单状态对象: Yes
- 模块状态树: No (行动都在根树上,但可以手动命名间隔)
- 非同步变异: Yes,默认情况下( _)* 存储
普罗
- 易于学习API,特别是如果您已经熟悉 Freezer
- 默认提供不变性
孔子
- 所有操作都是不同步的.
- 很少的文档
- 没有动作 / 突变抽象化. 您可以像正常情况一样访问和修改属性
- 没有长期开发保证
结论(博士)
如果不变性是您项目的绝对要求,您对设置 API 表面没关系,并且您喜欢 Freezer 提供的灵活性,那么您可能会选择使用 Vue Freeze。
希望这有助于您决定使用哪个Vue状态管理库。在大多数项目中,您可能希望与Vuex保持一致,但知道还有什么是好的。
如果您认为缺少或应该添加任何东西,我们很乐意从您那里听到(/contact/)。