【问题标题】:What is the benefit of SSR: true prop with dynamic imports?SSR 有什么好处:动态导入的真正道具?
【发布时间】:2021-12-19 14:25:03
【问题描述】:

动态导入组件与ssr: true有什么区别:

const DynamicButton = dynamic(() => import('./Button').then((mod) => mod.Button), {
  ssr: true,
});

只是普通的组件导入:

import { Button } from './Button';
  • 两者相比有什么好处?
  • 我们将负载放在哪里?
  • 对于下面的场景(JSX 示例),如果 showButtonfalse,我们还加载了 DynamicButton 吗?

// jsx
return showButton && <DynamicButton />

【问题讨论】:

    标签: javascript reactjs next.js jsx


    【解决方案1】:

    常规导入

    使用常规组件导入时,Next.js 将组件的代码与给定路由的其余组件捆绑在一起。这通常意味着您最终会得到一个包含每个路由的所有组件代码的大块。

    next/dynamicssr: true

    next/dynamicssr: true 一起使用时,Next.js 将组件的代码拆分为单独的块(代码拆分)并单独加载该块(延迟加载)。

    这意味着对于您描述的场景:

    return showButton && <DynamicButton />
    

    DynamicButton 组件仅在 showButton 为真时才被加载。这样做的好处是减少了在初始页面加载时加载的 JavaScript 数量。

    next/dynamicssr: false

    当使用next/dynamicssr: false 时,动态导入的所有上述好处也适用。但是,组件的代码不会在服务器上预加载,而只会在客户端上运行。当组件包含仅在浏览器中工作的库或 API 时,这通常很有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-11
      • 2012-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-15
      相关资源
      最近更新 更多