聊一聊 redux 异步流之 redux-saga
让我惊讶的是, redux-saga 的作者竟然是一名金融出身的在一家房地产公司工作的员工(让我想到了阮老师。。。),但是他对写代码有着非常浓厚的热忱,喜欢学习和挑战新的事物,并探索新的想法。恩,牛逼的人不需要解释。 1. 介绍 对于从来没有听说过 redux-saga 的人,作者会如何描述它呢? It is a Redux middleware for handling side effects . —— Yassine Elouafi 这里包含了两个信息: 首先, redux-saga 是一个 redux 的中间件,而中间件的作用是为 redux 提供额外的功能。 其次,我们都知道,在 reducers 中的所有操作都是同步的并且是纯粹的,即 reducer 都是纯函数, 纯函数是指一个函数的返回结果只依赖于它的参数,并且在执行过程中不会对外部产生副作用 ,即给它传什么,就吐出什么。但是在实际的应用开发中,我们希望做一些异步的(如Ajax请求)且不纯粹的操作(如改变外部的状态),这些在函数式编程范式中被称为“副作用”。 Redux 的作者将这些副作用的处理通过提供中间件的方式让开发者自行选择进行实现。 redux-saga 就是用来处理上述副作用(异步任务)的一个中间件。它是一个接收事件,并可能触发新事件的过程管理者,为你的应用管理复杂的流程。 2. 先说一说 redux