为什么要使用 redux-saga?
Why use redux-saga?
我最近进入 React.js 并通过一个小项目学习。
学习的时候一直搞不清楚为什么要用react-saga或者react-thunk
据说异步处理redux状态值。
但是我们不是已经有 async / await 了吗?
我们不应该使用 async / await 从组件文件调用 api 从服务器获取值并将其存储在 redux 存储中吗?
为什么要使用react-saga,我看了很多文章,但是这个问题还没有得到解答。
为什么有明确的理由使用 redux-saga?
Saga 处理更复杂的异步流。 Thunk 是用于异步 redux 操作的简单工具,可能足以满足 90% 的项目。我在这里有点偏见,因为我认为 saga 经常作为一个闪亮的新工具引入项目而没有实际需要。我还没有看到他们明确需要 saga(而不仅仅是 thunk)的项目。
关于您的第一个问题:是的,我们可以处理组件中的异步事物并使用 async/await 围绕 api 请求分派操作,但这是糟糕的设计,因为您关注的是 React 组件与它不应该关心的事情。它应该包含显示逻辑,并且只能用它来测试。
从 api 响应中获取数据到 redux 存储应该在组件之外处理,因为它根本不是您应用中视图渲染抽象层的关注点。
我最近进入 React.js 并通过一个小项目学习。
学习的时候一直搞不清楚为什么要用react-saga或者react-thunk
据说异步处理redux状态值。
但是我们不是已经有 async / await 了吗?
我们不应该使用 async / await 从组件文件调用 api 从服务器获取值并将其存储在 redux 存储中吗?
为什么要使用react-saga,我看了很多文章,但是这个问题还没有得到解答。
为什么有明确的理由使用 redux-saga?
Saga 处理更复杂的异步流。 Thunk 是用于异步 redux 操作的简单工具,可能足以满足 90% 的项目。我在这里有点偏见,因为我认为 saga 经常作为一个闪亮的新工具引入项目而没有实际需要。我还没有看到他们明确需要 saga(而不仅仅是 thunk)的项目。
关于您的第一个问题:是的,我们可以处理组件中的异步事物并使用 async/await 围绕 api 请求分派操作,但这是糟糕的设计,因为您关注的是 React 组件与它不应该关心的事情。它应该包含显示逻辑,并且只能用它来测试。
从 api 响应中获取数据到 redux 存储应该在组件之外处理,因为它根本不是您应用中视图渲染抽象层的关注点。