Reactjs 在下一个js应用程序中进行延迟加载的最佳方法是什么?
我在官方的下一个js文档页面()上查看了关于延迟加载组件的文档。 我尝试了上面提到的步骤,但它对我不起作用。下面是我要延迟加载的代码片段:Reactjs 在下一个js应用程序中进行延迟加载的最佳方法是什么?,reactjs,amazon-s3,next.js,Reactjs,Amazon S3,Next.js,我在官方的下一个js文档页面()上查看了关于延迟加载组件的文档。 我尝试了上面提到的步骤,但它对我不起作用。下面是我要延迟加载的代码片段: <div id="cards" className={index.sectionCards} style={{paddingBottom: '0px'}}> <div className="title" style={{marginBottom: "0px", paddingBottom: "0px"}}> T
<div id="cards" className={index.sectionCards} style={{paddingBottom: '0px'}}>
<div className="title" style={{marginBottom: "0px", paddingBottom: "0px"}}>
Take a Look at Our Exciting Range of Cards
</div>
{this.renderCards()}
<div></div>
</div>
看看我们令人兴奋的一系列卡片
{this.renderCards()}
此处renderCards函数调用后端API并从AWS S3获取图像,整个过程花费大量时间,因此增加了整个页面加载时间,下面是函数renderCards的代码:
renderCards() {
const keys = Object.keys(this.state.products);
const valid_keys = ['Specials', 'New Beginnings', 'Expressions', 'Celebrations' ];
if(keys.length == 0) return <div></div>
return (<div className={index.cards}>
{
keys.map((key) => {
if(valid_keys.indexOf(key) > -1) return <div style={{ width: '80%', margin: '0 auto' }}>
<div className={index.category}>{key}</div>
<div style={{ display: 'flex', overflow: 'scroll' }} >
{this.state.products[key].map((c) => {
if(c.status == 'PRODUCT_ACTIVE') {
return <img onClick={() => this.onClickProduct(c)} className={index.cardImage} src={`<backend URL here>`} />
}
})}
</div>
</div>
})
}
</div>)
}
renderCards(){
const keys=Object.keys(this.state.products);
const valid_keys=['Specials'、'New Beginings'、'Expressions'、'Celements'];
如果(keys.length==0)返回
返回(
{
key.map((key)=>{
如果(有效的密钥。indexOf(密钥)>-1)返回
{key}
{this.state.products[key].map((c)=>{
如果(c.status=='PRODUCT\u ACTIVE'){
返回`}/>
}
})}
})
}
)
}
目标是延迟加载此组件以提高整体页面速度
如果有人知道解决这个问题的方法,请分享。
const Cards=()=>{
const renderCards=()=>{
const keys=Object.keys(this.state.products);
常量有效密钥=[
“特色菜”,
“新的开始”,
“表达”,
“庆祝活动”,
];
如果(keys.length==0)返回;
返回(
{keys.map((key)=>(
{valid_key.indexOf(key)>-1&&(
{key}
{this.state.products[key].map((c)=>(
{c.status===“产品处于活动状态”&&(
`}
/>
)}
))}
)}
))}
);
};
返回(
看看我们令人兴奋的一系列卡片
{this.renderCards()}
);
};
```
上面的代码不是我的代码,而是问题代码的复制。
```
```
来自nextjs
有关动态/惰性负载的最佳理解,请参阅提供的链接。
从“下一个/动态”导入动态;
```
从“./LoadSpinner”导入LoadSpinner;
常量卡=动态(()=>导入(“./卡”){
```
这可以是自定义加载程序或已安装的节点模块,也可以只是加载…加载:功能将在等待加载导入功能时显示。
加载:()=>,
```
});
const CardContainer=()=>()代码>
const Cards=()=>{
const renderCards=()=>{
const keys=Object.keys(this.state.products);
常量有效密钥=[
“特色菜”,
“新的开始”,
“表达”,
“庆祝活动”,
];
如果(keys.length==0)返回;
返回(
{keys.map((key)=>(
{valid_key.indexOf(key)>-1&&(
{key}
{this.state.products[key].map((c)=>(
{c.status===“产品处于活动状态”&&(
`}
/>
)}
))}
)}
))}
);
};
返回(
看看我们令人兴奋的一系列卡片
{this.renderCards()}
);
};
```
上面的代码不是我的代码,而是问题代码的复制。
```
```
来自nextjs
有关动态/惰性负载的最佳理解,请参阅提供的链接。
从“下一个/动态”导入动态;
```
从“./LoadSpinner”导入LoadSpinner;
常量卡=动态(()=>导入(“./卡”){
```
这可以是自定义加载程序或已安装的节点模块,也可以只是加载…加载:功能将在等待加载导入功能时显示。
加载:()=>,
```
});
const CardContainer=()=>()你能评论一下你的代码吗