【发布时间】:2021-05-11 20:26:34
【问题描述】:
看看在 NextJS 中导入 react 组件的方式:
- 普通的旧静态导入:
import Component from './Component';
[...]
return (
<Component />
)
- 动态导入:
import dynamic from 'next/dynamic'
const DynamicComponent = dynamic(() =>
import('../components/hello').then((mod) => mod.Hello)
)
[...]
return (
<DynamicComponent />
)
- ssr = false 的动态导入:
import dynamic from 'next/dynamic'
const DynamicComponentWithNoSSR = dynamic(
() => import('../components/hello3'),
{ ssr: false }
)
[...]
return (
<DynamicComponentWithNoSSR />
)
我的问题很简单:第二个选项何时是首选选项?(在所有三种情况下,假设 SSR 通过存在 getServerSideProps 启用。)
似乎在任何情况下我的组件都是客户端专用的或由用户操作触发的,我想要选项#3。而且似乎无论如何都需要进行 SSR,如果我选择选项 #2,则在 before-hydration 阶段会立即下载块文件,因此它似乎不会为我节省任何时间。它似乎只是添加了一个网络调用。那么我为什么不直接使用选项 #1?
选项 #2 的实际用例是什么?
【问题讨论】:
标签: reactjs next.js react-loadable