Are you over 18 and want to see adult content?
More Annotations
A complete backup of inspirationseek.com
Are you over 18 and want to see adult content?
A complete backup of custodia4cover.it
Are you over 18 and want to see adult content?
A complete backup of diversityworking.com
Are you over 18 and want to see adult content?
A complete backup of wildfermentation.com
Are you over 18 and want to see adult content?
Favourite Annotations
A complete backup of bloedelreserve.org
Are you over 18 and want to see adult content?
A complete backup of thelifeyoucansave.org
Are you over 18 and want to see adult content?
A complete backup of fullmontymedia.com
Are you over 18 and want to see adult content?
A complete backup of apolloxpestcontrol.com
Are you over 18 and want to see adult content?
A complete backup of katarinaphang.com
Are you over 18 and want to see adult content?
A complete backup of empirestatenews.net
Are you over 18 and want to see adult content?
Text
Effect。Effect
是一个简单的对象,这个对象包含了一些给 middleware 解释执行的信息。 取消任务 · REDUX-SAGATRANSLATE THIS PAGE 取消正在运行的任务。. 来看看它是如何工作的,让我们先考虑一个简单的例子:一个可通过某些 UI 命令启动或停止的后台同步任务。. 在接收到 START_BACKGROUND_SYNC action 后,我们 fork 一个后台任务,周期性地从远程服务器同步一些数据。. 这个任务将会一直执行 同时执行多个任务 · REDUX-SAGATRANSLATE THIS PAGE 同时执行多个任务. yield 指令可以很简单的将异步控制流以同步的写法表现出来,但与此同时我们将也会需要同时执行多个任务,我们不能直接这样写: // 错误写法,effects 将按照顺序执行 const users = yield call (fetch, '/users'), repos = yield call (fetch, '/repos'). 由于第二个 effect 将会在第一个 call 执行完毕才 无阻塞调用 · REDUX-SAGATRANSLATE THIS PAGE 无阻塞调用. 在之前的章节中,我们看到了 take Effect 让我们可以在一个集中的地方更好地去描述一个非常规的流程。. 重温一下登录流程示例: function * loginFlow {while (true) {yield take ('LOGIN') // perform the login logic yield take ('LOGOUT') // perform the logout logic}}. 让我们来完成这个例子,并实现真实的 自述 · REDUX-SAGATRANSLATE THIS PAGE redux-saga. redux-saga 是一个用于管理应用程序 Side Effect(副作用,例如异步获取数据,访问浏览器缓存等)的 library,它的目标是让副作用管理更容易,执行更高效,测试更简单,在处理故障时更容易。. 可以想像为,一个 saga 就像是应用程序中一个单独的线程,它 技巧 · REDUX-SAGATRANSLATE THIS PAGESEE MORE ON REDUX-SAGA-IN-CHINESE.JS.ORG API 参考 · REDUX-SAGATRANSLATE THIS PAGESEE MORE ON REDUX-SAGA-IN-CHINESE.JS.ORG 使用 CHANNELS · REDUX-SAGATRANSLATE THIS PAGE 使用 Channels. They can also be used to queue specific actions from the Store. 到目前为止,我们已经使用了 take 和 put 来与 Redux Store 通信。 Channels 概括了这些 Effects 与外部事件源或 Sagas 之间的通信。 DISPATCH ACTION · REDUX-SAGATRANSLATE THIS PAGE 只需创建一个对象来指示 middleware 我们需要发起一些 action,然后让 middleware 执行真实的 dispatch。. 这种方式我们就可以同样的方式测试 Generator 的 dispatch:只需检查 yield 后的 Effect,并确保它包含正确的指令。. redux-saga 为此提供了另外一个函数 put ,这个函数用于 组合 SAGAS · REDUX-SAGATRANSLATE THIS PAGE 组合 Sagas. 虽然使用 yield* 是提供组合 Sagas 的惯用方式,但这个方法也有一些局限性:. 你可能会想要单独测试嵌套的 Generator。这导致了一些重复的测试代码及重复执行的开销。 我们不希望执行一个嵌套的 Generator,而仅仅是想确认它是被传入正确的参数来调用。 声明式 EFFECTS · REDUX-SAGATRANSLATE THIS PAGE 声明式 Effects. 在 redux-saga 的世界里,Sagas 都用 Generator 函数实现。 我们从 Generator 里 yield 纯 JavaScript 对象以表达 Saga 逻辑。 我们称呼那些对象为Effect。Effect
是一个简单的对象,这个对象包含了一些给 middleware 解释执行的信息。 取消任务 · REDUX-SAGATRANSLATE THIS PAGE 取消正在运行的任务。. 来看看它是如何工作的,让我们先考虑一个简单的例子:一个可通过某些 UI 命令启动或停止的后台同步任务。. 在接收到 START_BACKGROUND_SYNC action 后,我们 fork 一个后台任务,周期性地从远程服务器同步一些数据。. 这个任务将会一直执行 同时执行多个任务 · REDUX-SAGATRANSLATE THIS PAGE 同时执行多个任务. yield 指令可以很简单的将异步控制流以同步的写法表现出来,但与此同时我们将也会需要同时执行多个任务,我们不能直接这样写: // 错误写法,effects 将按照顺序执行 const users = yield call (fetch, '/users'), repos = yield call (fetch, '/repos'). 由于第二个 effect 将会在第一个 call 执行完毕才 无阻塞调用 · REDUX-SAGATRANSLATE THIS PAGE 无阻塞调用. 在之前的章节中,我们看到了 take Effect 让我们可以在一个集中的地方更好地去描述一个非常规的流程。. 重温一下登录流程示例: function * loginFlow {while (true) {yield take ('LOGIN') // perform the login logic yield take ('LOGOUT') // perform the logout logic}}. 让我们来完成这个例子,并实现真实的 使用 CHANNELS · REDUX-SAGATRANSLATE THIS PAGE 使用 Channels. They can also be used to queue specific actions from the Store. 到目前为止,我们已经使用了 take 和 put 来与 Redux Store 通信。 Channels 概括了这些 Effects 与外部事件源或 Sagas 之间的通信。 高级 · REDUX-SAGATRANSLATE THIS PAGE 高级. 这一部分,我们将深入探讨由 redux-saga 提供的强大的 Effects。 监听未来的 action; 无阻塞调用; 同时执行多个任务 DISPATCH ACTION · REDUX-SAGATRANSLATE THIS PAGE 只需创建一个对象来指示 middleware 我们需要发起一些 action,然后让 middleware 执行真实的 dispatch。. 这种方式我们就可以同样的方式测试 Generator 的 dispatch:只需检查 yield 后的 Effect,并确保它包含正确的指令。. redux-saga 为此提供了另外一个函数 put ,这个函数用于 并发 · REDUX-SAGATRANSLATE THIS PAGE并发.
在基础知识部分,我们看到了如何使用辅助函数 takeEvery 和 takeLatest effect 来管理 Effects 之间的并发。. 在本节中,我们将看到如何使用低阶 Effects 来实现那些辅助函数。 问题解答 · REDUX-SAGATRANSLATE THIS PAGE 问题解答 添加 saga 后应用程序被卡住了. 确保你在 Generator 函数里 yield effect。. 参考下面这个示例: import {take } from 'redux-saga/effects' function * logActions {while (true) {const action = take // 错误 console. log (action)}}. 这将使应用程序进入一个无限循环,因为 take() 只创建了一条 effect 描述信息。 。 除非将它 yield 给 监听未来的 ACTION · REDUX-SAGATRANSLATE THIS PAGE 监听未来的 action. 到现在为止,我们已经使用了辅助函数 takeEvery effect 以在每个 action 来到时派生一个新的任务。 这多少有些模仿 redux-thunk 的行为:举个例子,每次一个组件调用 fetchProducts Action 创建器(Action Creator),Action 创建器就会发起一个 thunk 来执行控制流程。 无阻塞调用 · REDUX-SAGATRANSLATE THIS PAGE 无阻塞调用. 在之前的章节中,我们看到了 take Effect 让我们可以在一个集中的地方更好地去描述一个非常规的流程。. 重温一下登录流程示例: function * loginFlow {while (true) {yield take ('LOGIN') // perform the login logic yield take ('LOGOUT') // perform the logout logic}}. 让我们来完成这个例子,并实现真实的 一个常见的抽象概念: EFFECT · REDUX-SAGATRANSLATE THIS PAGE 一个常见的抽象概念: Effect. 概括来说,从 Saga 内触发异步操作(Side Effect)总是由 yield 一些声明式的 Effect 来完成的 (你也可以直接 yield Promise,但是这会让测试变得困难,就像我们在第一节中看到的 使用 YIELD* 对 SAGAS 进行排序 · REDUX-SAGATRANSLATE THIS PAGE yield*. 对 Sagas 进行排序. 你可以使用内置的 yield* 操作符来组合多个 Sagas,使得它们保持顺序。. 这让你可以一种简单的程序风格来排列你的 宏观任务(macro-tasks) 。. 注意,使用 yield* 将导致该 Javascript 运行环境 漫延 至整个序列。. 由此产生的迭代器(来自 game 错误处理 · REDUX-SAGATRANSLATE THIS PAGE错误处理.
在这一节中,我们将看到如何在前面的例子中处理故障案例。我们假设远程读取因为某些原因失败了,API 函数 Api.fetch 返回一个被拒绝(rejected)的 Promise。. 我们希望通过在 Saga 中发起 PRODUCTS_REQUEST_FAILED action 到 Store 来处理那些错误。. 我们可以使用熟悉的 try/catch 语法在 Saga 中捕获错误。 自述 · REDUX-SAGA redux-saga. 文档版本号:1.0.0-beta. 英文原版:https://redux-saga.js.org/ redux-saga 是一个用于管理应用程序 Side Effect(副作用,例如 技巧 · REDUX-SAGASEE MORE ON REDUX-SAGA-IN-CHINESE.JS.ORG API 参考 · REDUX-SAGASEE MORE ON REDUX-SAGA-IN-CHINESE.JS.ORGREDUX SAGA ALTERNATIVESREDUX SAGA PUTREDUX SAGA ALLREDUX SAGA TAKEREACT REDUX SAGAREDUX SAGA 使用 CHANNELS · REDUX-SAGA 使用 Channels. They can also be used to queue specific actions from the Store. 到目前为止,我们已经使用了 take 和 put 来与 Redux Store 通信。 Channels 概括了这些 Effects 与外部事件源或 Sagas 之间的通信。 组合 SAGAS · REDUX-SAGA 组合 Sagas. 虽然使用 yield* 是提供组合 Sagas 的惯用方式,但这个方法也有一些局限性:. 你可能会想要单独测试嵌套的 Generator。这导致了一些重复的测试代码及重复执行的开销。 我们不希望执行一个嵌套的 Generator,而仅仅是想确认它是被传入正确的参数来调用。 测试 SAGAS · REDUX-SAGA results matching ""No results matching """ 并发 · REDUX-SAGA并发.
在基础知识部分,我们看到了如何使用辅助函数 takeEvery 和 takeLatest effect 来管理 Effects 之间的并发。. 在本节中,我们将看到如何使用低阶 Effects 来实现那些辅助函数。 取消任务 · REDUX-SAGA 取消任务. 我们已经在 无阻塞调用 一节中看到了取消任务的示例。 在这节,我们将回顾一下,在一些更加详细的情况下取消 同时执行多个任务 · REDUX-SAGA 同时执行多个任务. yield 指令可以很简单的将异步控制流以同步的写法表现出来,但与此同时我们将也会需要同时执行多个任务,我们不能直接这样写: // 错误写法,effects 将按照顺序执行 const users = yield call (fetch, '/users'), repos = yield call (fetch, '/repos'). 由于第二个 effect 将会在第一个 call 执行完毕才 无阻塞调用 · REDUX-SAGA 无阻塞调用. 在之前的章节中,我们看到了 take Effect 让我们可以在一个集中的地方更好地去描述一个非常规的流程。. 重温一下登录流程示例: function * loginFlow {while (true) {yield take ('LOGIN') // perform the login logic yield take ('LOGOUT') // perform the logout logic}}. 让我们来完成这个例子,并实现真实的 自述 · REDUX-SAGA redux-saga. 文档版本号:1.0.0-beta. 英文原版:https://redux-saga.js.org/ redux-saga 是一个用于管理应用程序 Side Effect(副作用,例如 技巧 · REDUX-SAGASEE MORE ON REDUX-SAGA-IN-CHINESE.JS.ORG API 参考 · REDUX-SAGASEE MORE ON REDUX-SAGA-IN-CHINESE.JS.ORGREDUX SAGA ALTERNATIVESREDUX SAGA PUTREDUX SAGA ALLREDUX SAGA TAKEREACT REDUX SAGAREDUX SAGA 使用 CHANNELS · REDUX-SAGA 使用 Channels. They can also be used to queue specific actions from the Store. 到目前为止,我们已经使用了 take 和 put 来与 Redux Store 通信。 Channels 概括了这些 Effects 与外部事件源或 Sagas 之间的通信。 组合 SAGAS · REDUX-SAGA 组合 Sagas. 虽然使用 yield* 是提供组合 Sagas 的惯用方式,但这个方法也有一些局限性:. 你可能会想要单独测试嵌套的 Generator。这导致了一些重复的测试代码及重复执行的开销。 我们不希望执行一个嵌套的 Generator,而仅仅是想确认它是被传入正确的参数来调用。 测试 SAGAS · REDUX-SAGA results matching ""No results matching """ 并发 · REDUX-SAGA并发.
在基础知识部分,我们看到了如何使用辅助函数 takeEvery 和 takeLatest effect 来管理 Effects 之间的并发。. 在本节中,我们将看到如何使用低阶 Effects 来实现那些辅助函数。 取消任务 · REDUX-SAGA 取消任务. 我们已经在 无阻塞调用 一节中看到了取消任务的示例。 在这节,我们将回顾一下,在一些更加详细的情况下取消 同时执行多个任务 · REDUX-SAGA 同时执行多个任务. yield 指令可以很简单的将异步控制流以同步的写法表现出来,但与此同时我们将也会需要同时执行多个任务,我们不能直接这样写: // 错误写法,effects 将按照顺序执行 const users = yield call (fetch, '/users'), repos = yield call (fetch, '/repos'). 由于第二个 effect 将会在第一个 call 执行完毕才 无阻塞调用 · REDUX-SAGA 无阻塞调用. 在之前的章节中,我们看到了 take Effect 让我们可以在一个集中的地方更好地去描述一个非常规的流程。. 重温一下登录流程示例: function * loginFlow {while (true) {yield take ('LOGIN') // perform the login logic yield take ('LOGOUT') // perform the logout logic}}. 让我们来完成这个例子,并实现真实的 使用 CHANNELS · REDUX-SAGA 使用 Channels. They can also be used to queue specific actions from the Store. 到目前为止,我们已经使用了 take 和 put 来与 Redux Store 通信。 Channels 概括了这些 Effects 与外部事件源或 Sagas 之间的通信。 高级 · REDUX-SAGA 高级. 这一部分,我们将深入探讨由 redux-saga 提供的强大的 Effects。 监听未来的 action; 无阻塞调用; 同时执行多个任务 基础概念 · REDUX-SAGA results matching ""No results matching """ 并发 · REDUX-SAGA并发.
在基础知识部分,我们看到了如何使用辅助函数 takeEvery 和 takeLatest effect 来管理 Effects 之间的并发。. 在本节中,我们将看到如何使用低阶 Effects 来实现那些辅助函数。 DISPATCH ACTION · REDUX-SAGA 发起 action 到 store. 在前面的例子上更进一步,假设每次保存之后,我们想发起一些action 通知 Store
数据获取成功了(目前我们先忽略失败的情况)。 问题解答 · REDUX-SAGA 问题解答 添加 saga 后应用程序被卡住了. 确保你在 Generator 函数里 yield effect。. 参考下面这个示例: import {take } from 'redux-saga/effects' function * logActions {while (true) {const action = take // 错误 console. log (action)}}. 这将使应用程序进入一个无限循环,因为 take() 只创建了一条 effect 描述信息。 。 除非将它 yield 给 取消任务 · REDUX-SAGA 取消任务. 我们已经在 无阻塞调用 一节中看到了取消任务的示例。 在这节,我们将回顾一下,在一些更加详细的情况下取消 使用 YIELD* 对 SAGAS 进行排序 · REDUX-SAGA 使用 yield* 对 Sagas 进行排序. 使用 yield* 对 Sagas 进行排序. 你可以使用内置的 yield* 操作符来组合多个 Sagas,使得它们保持顺序。 这让你可以一种简单的程序风格来排列你的 宏观任务(macro-tasks)。. function * playLevelOne {} function * playLevelTwo {} function * playLevelThree {} function * game {constscore1 = yield
监听未来的 ACTION · REDUX-SAGA 监听未来的 action. 到现在为止,我们已经使用了辅助函数 takeEvery effect 以在每个 action 来到时派生一个新的任务。 这多少有些模仿 redux-thunk 的行为:举个例子,每次一个组件调用 fetchProducts Action 创建器(Action Creator),Action 创建器就会发起一个 thunk 来执行控制流程。 无阻塞调用 · REDUX-SAGA 无阻塞调用. 在之前的章节中,我们看到了 take Effect 让我们可以在一个集中的地方更好地去描述一个非常规的流程。. 重温一下登录流程示例: function * loginFlow {while (true) {yield take ('LOGIN') // perform the login logic yield take ('LOGOUT') // perform the logout logic}}. 让我们来完成这个例子,并实现真实的* 自述
* 介绍
* 初级教程
* Saga 概念的背景* 基础概念
* 使用 Saga Helpers* 声明式 Effects
* dispatch action
* 错误处理
* 一个常见的抽象概念: Effect* 高级
* 监听未来的 action* 无阻塞调用
* 同时执行多个任务 * 在多个 Effects 之间启动 race * 使用 yield* 对 Sagas 进行排序* 组合 Sagas
* 取消任务
* redux-saga 的 fork model* 并发
* 测试 Sagas
* 连接 Sagas 至外部的输入/输出* 使用 Channels
* 技巧
* 外部资源
* 问题解答
* 名词解释
* API 参考
*
* Published with GitBook____ 开始纠错__
__
FacebookGoogle+TwitterWeiboInstapaper__________
AA
SerifSans
WhiteSepiaNight
__ 自述
REDUX-SAGA
文档版本号:1.0.0-BETA > 英文原版:https://redux-saga.js.org/ redux-saga 是一个用于管理应用程序 Side Effect(副作用,例如异步获取数据,访问浏览器缓存等)的 library,它的目标是让副作用管理更容易,执行更高效,测试更简单,在处理故障时更容易。 可以想像为,一个 saga 就像是应用程序中一个单独的线程,它独自负责处理副作用。 redux-saga 是一个 redux 中间件,意味着这个线程可以通过正常的 redux action 从主应用程序启动,暂停和取消,它能访问完整的 redux state,也可以 dispatch redux action。 redux-saga 使用了 ES6 的 Generator 功能,让异步的流程更易于读取,写入和测试。_(如果你还不熟悉的话,这里有一些介绍性的链接)_
通过这样的方式,这些异步的流程看起来就像是标准同步的 Javascript 代码。(有点像 async/await,但 Generator 还有一些更棒而且我们也需要的功能)。 你可能已经用了 redux-thunk 来处理数据的读取。不同于redux
thunk,你不会再遇到回调地狱了,你可以很容易地测试异步流程并保持你的 action 是干净的。开始
安装
$ npm install --save redux-saga或
$ yarn add redux-saga 或者,你可以直接在 HTML 页面的Copyright © 2024 ArchiveBay.com. All rights reserved. Terms of Use | Privacy Policy | DMCA | 2021 | Feedback | Advertising | RSS 2.0