前端漫游指南:状态管理
介绍
Redux
ReactiveX
反应上下文
Vuex
Mobx
自己动手
结论
相关阅读
介绍
您是否曾经需要使用 React 或 Vue 构建大型 SPA?如何保持代码库的可管理性?
假设您正在构建以下应用程序,其中组件共享数据并根据 UI 交互进行更新。
界面上的数据通常被称为状态,它存在于内存中,必须同步到数据库。
状态管理就是处理数据如何同步、共享和更新。你经常会听到与此概念相关的以下术语:
以下是可提供帮助的库:
Redux
Redux将自己描述为“状态容器”(也称为flux库),并实现以下架构。
视图是允许用户执行操作的用户界面。每个操作都会调用一种称为 Reducer 的函数,该函数会影响存储在 Store 中的应用程序状态。然后,Store 会更新 UI。
除了大型框架之外,redux 是我关注的第一个专注于状态管理的库。Redux 可以与其他框架或 UI 库一起使用。
ReactiveX
正如其官网所述,ReactiveX结合了函数式编程以及观察者模式和迭代器模式。该库针对不同的编程语言和框架提供了不同的版本,例如针对 Angular 的ngrx。
ReactiveX 是关于设置产生组件可以订阅和响应的事件的流。
如果您喜欢函数式编程的各个方面,例如不变性、纯度和可追溯性(调试时),那么您可能会喜欢使用 reactx。
反应上下文
早期,React 和 Redux 是流行的组合。现在,你可以使用React context。Context 允许组件共享值,而无需传递 props。
React 应用是一个以 App 组件为根的组件树。Context 提供了一个可供任何组件访问的单例。
上下文可以使大型反应应用程序的工作更简单,而无需添加任何依赖项。
Vuex
Vuex是 Vue.js 应用程序的状态管理库。以下是 Vuex 应用程序的结构。
对于中大型 Vue 应用来说,这绝对值得一看。Vuex 页面上有一段引言,我认为很有道理。
Flux 库就像眼镜:你会知道何时需要它们。
Mobx
Mobx自称是一款简单、可扩展的状态管理工具。它以如下方式组织应用程序。
Mobx 的结构更简单,比 Redux 更容易上手,但也牺牲了一些可扩展性。Mobx 可以与 React 或 Vue 等 UI 库一起使用。
自己动手
状态管理实现通常将交互式架构模式应用于代码,以使其有条理、可预测和可扩展。
这与一个更大的软件工程概念——设计模式——相关。你可以应用诸如Observable 之类的基本模式来实现你自己的状态管理系统。
结论
虽然掌握某种状态管理策略的编码风格可能需要一些时间,但从长远来看,它们对于扩展大型应用程序来说往往是有益的。第三站到此结束,下周再见,下一个目的地。你能猜到我们接下来要去哪里吗?请在评论区留言。