首页 > 解决方案 > 将 redux saga 与 next.js 一起使用是反模式吗?

问题描述

我用 next.js 创建了一个页面,如下所示。

https://github.com/jinhoyoo/breadpan/blob/7db4ba1c458aff4eee558d27c9e7b84af6401596/frontend/todoapp/pages/todo/index.tsx?fbclid=IwAR3gHVcnSDH7R_rqKdN5CtUoKCEo774oESG6QYk3ZpR46RYTS6tlHF9qM

使用getInitialProps()在早期设置属性。它也使用异步调用。然后我想知道在 next.js 中使用 redux saga 真的很有用。

sampleFetchWrapper()实现如下。

import fetch from 'isomorphic-unfetch'

export async function sampleFetchWrapper(
  input: RequestInfo,
  init?: RequestInit
) {
  try {
    const data = await fetch(input, init).then(res => res.json())
    return data
  } catch (err) {
    throw new Error(err.message)
  }
}

这是其他人使用 redux saga 和 next.js 的帖子。但我想知道这是不是正确的方法。你能推荐正确的想法吗?

标签: javascriptreactjsreduxnext.jssaga

解决方案


它有效,可能仅用于初始渲染。但SPA不止于此。

如果您在客户端应用过滤器怎么办?您将需要在应用过滤器的情况下获取新数据。写评论怎么样?您需要向服务器发送请求、获得响应并显示添加的评论。

因此,在页面绘制后与后端交互的情况下,使用 redux-saga 是一个很好的方法。如果getInitialProps您想在用户打开页面后立即显示内容(而不是显示加载屏幕),或者如果您想进行搜索引擎优化。当然,更快的页面渲染也很重要。


推荐阅读