状态管理简介
接下来,我们将介绍 React 中的状态管理。
全局状态管理
随着应用程序规模的不断扩大,其复杂性和数据量也随之增长。管理应用状态变得越来越困难和繁琐。你可能会疑惑:何时传递属性(props)、传递给哪个组件、如何传递?此外,你还可能关心这些属性如何影响组件的状态,以及当某个组件的状态发生变化时会产生什么后果。
在过去几年中,React 引入了许多优秀的工具来应对应用状态复杂性增加的问题。Context API 和 useReducer Hook 极大地丰富了 React 开发者的工具箱,使我们能够更轻松地处理复杂的数据。然而,在某些情况下,仍然难以跟踪所有分散的数据及其变化过程。为了解决这类问题,使用外部的全局状态管理工具是一个非常好的选择。
React 生态系统为我们提供了多种可选的库。
全局状态管理工具
其中较为人熟知的工具之一是 MobX,它自称是“简单、可扩展的状态管理”解决方案。行业中另一个广为人知的工具是 Redux。Redux 由 Dan Abramov 和 Andrew Clark 部分开发,他们如今已是官方 React 核心团队的成员。Redux 将自己定位为“JavaScript 应用的可预测状态容器”。可以说,Redux 是目前更具主导地位的工具,拥有更高的使用率和下载量。
Redux
许多人发现,在许多项目中使用 Redux 是一种愉快且高效的体验。Redux 每周的安装量约为 400 万次,相比之下,MobX 虽然也有每周 20 万次的可观安装量,但在 React 生态系统中,Redux 仍占据主导地位。
尽管多年来不断有声音宣称 Redux 已经过时或消亡,但人们对它的兴趣一直保持稳定,下载量仍在持续增长。当初 React 16.3.0 版本推出 Context API 时,有人认为 Redux 将被淘汰;而当 React 16.8.0 引入 Hooks(特别是 useReducer Hook)后,Redux 再次受到质疑。尽管面临诸多批评,Redux 的安装数量却持续上升。
事实上,Redux 在底层正是利用了 Context 和 Hooks,并基于这些机制优化自身性能、简化 API。不仅如此,Redux 还催生了大量自定义插件和配套工具,其生态系统日益壮大。React 提供的新功能非但没有取代 Redux,反而进一步增强了它的能力。