首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

redux-saga

作为一个Redux中间件,想让Redux应用中的副作用(即依赖/影响外部环境的不纯的部分)处理起来更优雅 二.设计理念 Saga像个独立线程一样,专门负责处理副作用,多个Saga可以串行/并行组合起来,...还要实现: 作为middleware接入到Redux 提供读/写Redux state的接口(select/put) 提供监听action的接口(take/takeEvery/takeLatest) Sagas...error的传递方式,所以如果任一task有捕获的error,当前saga也会结束 另外,cancel机制比较有意思: 对于执行中的task序列,所有task自然完成时,把结果向上传递到队首,作为上层某个...术语Saga指的是一系列操作的集合,是个运行时的抽象概念 redux-saga里的Saga形式上是generator,用来描述一组操作,而generator是个具体的静态概念 P.S.redux-saga...里所说的Saga大多数情况下指的都是generator形式的一组操作,而不是指redux-saga自身。

1.9K41

手写Redux-Saga源码

可以看到Redux-Saga这种机制也是用takeEvery先注册回调,然后使用put发出消息来触发回调执行,这其实跟我们其他文章多次提到的发布订阅模式很像。...并执行,如果遇到take就将它注册到channel上去,如果遇到put就将对应的回调拿出来执行,但是Redux-Saga又将这个过程分为了好几层,我们一层一层来看吧。...再来回顾下他的主要要点: Redux-Saga其实也是一个发布订阅模式,管理事件的地方是channel,两个重点API:take和put。...put是发出事件,他是使用Redux dispatch发出事件的,也就是说put的事件会被ReduxRedux-Saga同时响应。...Redux-Saga增强了Redux的dispatch函数,在dispatch的同时会触发channel.put,也就是让Redux-Saga也响应回调。

1.7K30

React之redux学习日志(reduxreact-reduxredux-saga

Redux-Saga中间件 redux-saga中文文档地址:https://redux-saga-in-chinese.js.org/docs/basics/DeclarativeEffects.html...当我们需要执行一些异步操作时,由于action中只能返回一个对象,从而需要借助一些中间件来达到目的,redux-thunk 和 redux-saga是常见的两种中间件。   .../sagas"; import createSagaMiddleware from "redux-saga"; // 创建 redux-saga 中间件 const sagaMiddleware =...redux-saga中有很多 声明 effects 函数(比如:call、put、takeEvery、all、fock等等),具体请查阅redux-saga文档。...备注:redux-saga函数必须是一个Generator函数 拓展:还可以通过以下代码来将saga进行模块化: import { all, fork } from 'redux-saga/effects

53330

一文梭穿Vuex、Flux、ReduxRedux-saga、Dva、MobX

处理异步 对于异步操作来说,有两个非常关键的时刻:发起请求的时刻,和接收到响应的时刻(可能成功,也可能失败或者超时),这两个时刻都可能会更改应用的 state。...举个例子: // saga.js import { take, put } from 'redux-saga/effects' function* mySaga(){ // 阻塞: take方法就是等待...也就是相当于take、put、call、put 这几个方法的调用变成了同步的,上面的全部完成返回了,才会执行下面的,类似于 await。...对比 Redux-thunk 比较一下 redux-thunk 和 redux-saga 的代码: 和 redux-thunk 等其他异步中间件对比来说,redux-saga 主要有下面几个特点:...之前我们聊了 redux、react-reduxredux-saga 之类的概念,大家肯定觉得头昏脑涨的,什么 action、reducer、saga 之类的,写一个功能要在这些js文件里面不停的切换

5.4K10

dva

简言之:dva想提供一个基于业界react&redux最佳实践的业务框架,以解决用裸redux全家桶作为前端数据层带来的种种问题 编辑成本高,需要在reducer, saga, action之间来回切换...依赖关系 dva react react-dom dva-core redux redux-saga history react-redux react-router-redux...subscriptions // redux-saga里的sagas effects // redux里的reducer reducers }; dva-core实际所作的主要工作是从...model配置得到reducers,worker sagas, states后,屏蔽接下来的一系列繁琐工作: 接redux(组合state,组合reducer) 接redux-saga(完成redux-saga...和redux,靠redux中间件机制把redux-saga拉进来一起玩) 到这里差不多封装好了,那么,下面开一些口子增加一点灵活性: 递出一堆钩子(effect/reducer/action/state

1.9K50
领券