s-s-r 有啥好处:动态导入的真正道具?

Posted

技术标签:

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

动态导入组件与s-s-r: true有什么区别:

const DynamicButton = dynamic(() => import('./Button').then((mod) => mod.Button), 
  s-s-r: true,
);

只是普通的组件导入:

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

【问题讨论】:

【参考方案1】:

常规导入

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

next/dynamics-s-r: true

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

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

return showButton && <DynamicButton />

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

next/dynamics-s-r: false

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

【讨论】:

以上是关于s-s-r 有啥好处:动态导入的真正道具?的主要内容,如果未能解决你的问题,请参考以下文章

在星型模式表设计中包含关系有啥好处?

s-s-r:反应应用程序中的动态导入如何在客户端加载组件时处理html未匹配

拥有供应商文件夹有啥好处?

用腾讯企业邮箱有啥好处

ExpandoObject 的真正好处是啥?

ip代理是啥意思?有啥作用与好处?