node.js - 如何在 Gatsby 中使用 React.lazy

标签 node.js reactjs typescript gatsby

如使用 React.lazy在 Gatsby 中制作 production 时会出错( gatsby build ),最好的使用方法是什么 React.lazysuspense在 Gatsby 计划中

最佳答案

React.lazy 和 Suspense 还没有做好服务端渲染的准备,但是通过检查代码是否只在客户端执行,它们仍然可以使用。虽然这个解决方案不如可加载组件,它在服务器端和客户端都有效,但它仍然提供了一种替代方案来处理仅客户端的包,而没有额外的依赖。请记住,如果在没有 isSSR 保护的情况下执行以下代码,则可能会中断。

import React from "react"
const ClientSideOnlyLazy = React.lazy(() =>
  import("../components/ClientSideOnly")
)
const MyPage = () => {
  const isSSR = typeof window === "undefined"
  return (
    <>
      {!isSSR && (
        <React.Suspense fallback={<div />}>
          <ClientSideOnlyLazy />
        </React.Suspense>
      )}
    </>
  )
}
尝试关注 this guide on gatsbyjs.com , 如果以上对你不起作用

关于node.js - 如何在 Gatsby 中使用 React.lazy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63066974/

相关文章:

android - React Native 中的全局变量/常量

angular - Typescript:如何使用枚举来强制数组仅包含该枚举中的特定值?

node.js - Passport.js - 错误 : failed to serialize user into session

javascript - useEffect 在循环中调用异步函数

typescript - 如何从 Typescript 1.6 中的单独文件正确导入 React JSX

typescript - 无法生成 Jest 覆盖率报告

javascript - 粘贴事件中的 typescript 回调为空

node.js - 通过node.js将几何对象解析为wkt

node.js - 使用 Redis 的 NodeJs 缓存

node.js - Node.js 缓冲区作为 JSON 是可移植存储格式吗?