Redux: Motivation

 20th August 2020 at 2:19pm

单页应用(SPA)越来越复杂,导致代码必须管理好几份状态数据:

  • 从服务端拉来的数据
  • 本地缓存的数据,如上一次从服务端拉来的数据
  • 本地新增或者变化的、并且未同步到服务端的数据

前端开发也越来越复杂:

  • UI 的状态也越来越复杂,比如需要管理路由、tab、分页控件等等。
  • 一个 model 数据的变化,可能导致 UI 的更新,可能继续导致其他的 model 也跟着变化。我们已经难以理解我们构建的系统
  • 对前端的要求更高了,比如 optimistic updates, server-side rendering, fetching data before performing route transitions

Redux 认为是这两个概念合在一起引起的混乱:数据可变性(mutation)及异步性(asynchronicity)。(这块我还不太理解,后面随着深入用 Redux 再加强理解。)于是它试图解决一个问题,make state mutations predictable,让状态数据的变化可以被预期。