动态导入模块 Next.js,但使用服务器端渲染

Wil*_*der 7 javascript dynamic-import reactjs server-side-rendering next.js

[...pageId].tsx我在 /pages 目录中有一个文件。

在 中getServerSideProps,页面将检查 CMS,并找到要呈现的组件列表。我想在服务器端加载这些组件,然后将它们渲染出来,然后返回页面。

如下所示使用 next/dynamic 将加载组件,但不会在服务器端渲染它们。他们只会在客户端上流式传输。换句话说:客户将首先看到“正在加载...”,然后呈现组件。这不是我想要的,也不是 SEO 想要的。

const getDynamicComponent = (c) => dynamic(() => import(`../../components/${c}`), {
  loading: () => <section>Loading...</section>,
  ssr: true
});

export default function SomePage({page}) {
  // Load dynamic component if necessary
  let DynamicComponent = getDynamicComponent(page.reactComponent);
  }
  return (
     <DynamicComponent page={page} />
  )
}
Run Code Online (Sandbox Code Playgroud)

如何使用动态导入实现服务器端渲染?